求教Android,动态添加到控件能动态删除吗?
2个回答
展开全部
可以的,android中使用布局是为了加快开发,最终控件还是通过解析XML后,通过代码添加的。
具体方法:
例如你的布局是一个Linearlayout linear;上面有一本Button btn1;
要删除这个btn1要做的就是 linear.removeView( btn1 );
动态添加也是一样的:
linear.addView( btn2 );
要注意的是,Button btn2 = new Button( context );这时候控件是没有大小的,必须设置控件大小以后添加了才能看到。设置控件大小的方法是view.setLayoutParams();
希望能够帮到你。
具体方法:
例如你的布局是一个Linearlayout linear;上面有一本Button btn1;
要删除这个btn1要做的就是 linear.removeView( btn1 );
动态添加也是一样的:
linear.addView( btn2 );
要注意的是,Button btn2 = new Button( context );这时候控件是没有大小的,必须设置控件大小以后添加了才能看到。设置控件大小的方法是view.setLayoutParams();
希望能够帮到你。
展开全部
可以的。有2中方式:
1、动态添加的时候为组件设置id,删除的时候根据id查找到对应组件,然后删除
2、根据父节点,获取所有父组件下的子组件,然后依次删除。
示例:
protected View createView() {//动态添加组件
Button btn = new Button(this);//动态创建按钮
btn.setId(index++);
btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
btn.setText("aaaaaa" + index);
return btn;
}
private void removeView() {//动态删除组件(按钮)
//获取linearlayout子view的个数
int count = linearLayout.getChildCount();
//研究整个LAYOUT布局,第0位的是含add和remove两个button的layout
//第count-1个是那个文字被置中的textview
//因此,在remove的时候,只能操作的是0<location<count-1这个范围的
//在执行每次remove时,我们从count-2的位置即textview上面的那个控件开始删除~
if (count - 2 > 0) {
//count-2>0用来判断当前linearlayout子view数多于2个,即还有我们点add增加的button
linearLayout.removeViewAt(count - 2);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询