我已在动态布局中创建了多个按钮。现在,如何在使用后删除此布局 例如: -
LinearLayout parent = new LinearLayout(this);
parent.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
parent.setOrientation(LinearLayout.HORIZONTAL);
for (int i = 0; i < 10; i++) {
Button b = new Button(this);
b.setText("Primary");
Drawable image = ContextCompat.getDrawable(
getApplicationContext(),
R.drawable.your_image);
image.setBounds(0, 0, 60, 60);
b.setCompoundDrawables(null, null, image, null);
parent.addView(b);
}
答案 0 :(得分:2)
如果您仍然拥有线性布局的实例,请像对removeView(...)
一样调用addView(...)
。
答案 1 :(得分:0)
您可以将linearLayout的可见性设置为parent.setVisibility(View.GONE);
或通过parent.removeAllViews().
答案 2 :(得分:0)
您必须使用来自父级的removeView(View)
或removeViewAt(position)
,具体取决于您是否跟踪索引或对象。
parent.removeView(button);
parent.removeViewAt(buttonIndex);
答案 3 :(得分:0)
获取视图的父级并从其父级
中删除该视图((ViewGroup) parent.getParent()).removeView(parent);
答案 4 :(得分:0)
试试这个:
View button = view.findViewById(R.id.buttonid);
((ViewGroup) button.getParent()).removeView(button);
答案 5 :(得分:0)
我已从其子(Textview's)点击中删除了ParentView。
tvClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (llContainer.getChildCount() > 1) {
((LinearLayout) view.getParent()).removeView(view);
}
}
});