摘要:本文将带你了解Android应用开发Android_Develop:如何在代码中实时添加、移除布局、控件,希望本文对大家学Android有所帮助。
本文将带你了解Android应用开发Android_Develop:如何在代码中实时添加、移除布局、控件,希望本文对大家学Android有所帮助。
在代码中实时添加、移除布局、控件
1、添加
要在代码中动态添加布局和控件,可以使用ViewGroup类自带的addView方法,如下:
framLayout.addView(animationFrameLayout);
方法接受的参数类型为View,说明可以添加布局和控件,只要继承了View类。需要注意的是,如果你的child没有设置parameters,将会为child设置默认的parameters(引用ViewGroup的),而且不要在draw相关的方法里调用这个方法。
/**
*
Adds a child view. If no layout parameters are already set on the child, the * default parameters for this ViewGroup are set on the child.
* *
Note: do not invoke this method from * {@link #draw(android.graphics.Canvas)}, {@link #onDraw(android.graphics.Canvas)}, * {@link #dispatchDraw(android.graphics.Canvas)} or any related method.
* * @param child the child view to add * * @see #generateDefaultLayoutParams() */ public void addView(View child) { addView(child, -1); }
2、移除
要在代码里移除相应控件,只要调用相应的removeView方法即可。
framLayout.removeView(animationFrameLayout);
与addView方法一样,可以移除继承自View的对象,需要注意的是,不要在draw相关的方法里调用这个方法。
/**
* {@inheritDoc}
*
*
Note: do not invoke this method from * {@link #draw(android.graphics.Canvas)}, {@link #onDraw(android.graphics.Canvas)}, * {@link #dispatchDraw(android.graphics.Canvas)} or any related method.
*/ @Override public void removeView(View view) { if (removeViewInternal(view)) { requestLayout(); invalidate(true); } }
如果你想把所有控件一次性移除,可以调用removeAllView方法
/**
* {@inheritDoc}
*
*
Note: do not invoke this method from * {@link #draw(android.graphics.Canvas)}, {@link #onDraw(android.graphics.Canvas)}, * {@link #dispatchDraw(android.graphics.Canvas)} or any related method.
*/ @Override public void removeView(View view) { if (removeViewInternal(view)) { requestLayout(); invalidate(true); } }
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号