从布局添加和删除视图

chi*_*jib 88 android

如何从布局中添加和删除视图?

Nat*_*ann 209

我这样做了:

((ViewManager)entry.getParent()).removeView(entry);
Run Code Online (Sandbox Code Playgroud)

  • 在较新的SDK中它的`(ViewGroup)`:) (43认同)

Sam*_*gal 22

使用ViewStub并指定要切换的视图的布局.查看:

mViewStub.setVisibility(View.VISIBLE) or mViewStub.inflate();
Run Code Online (Sandbox Code Playgroud)

消失:

mViewStub.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

  • 隐藏与删除不同. (35认同)

Tof*_*mad 21

这是最好的方法

LinearLayout lp = new LinearLayout(this);
lp.addView(new Button(this));
lp.addView(new ImageButton(this));
// Now remove them 
lp.removeViewAt(0); // and so on
Run Code Online (Sandbox Code Playgroud)

如果你有xml布局,那么就不需要添加dynamic.just调用

lp.removeViewAt(0);
Run Code Online (Sandbox Code Playgroud)


Abe*_*efe 18

要向布局添加视图,可以使用该类的addView方法ViewGroup.例如,

TextView view = new TextView(getActivity());
view.setText("Hello World");

ViewGroup Layout = (LinearLayout) getActivity().findViewById(R.id.my_layout);
layout.addView(view); 
Run Code Online (Sandbox Code Playgroud)

还有一些删除方法.查看ViewGroup的文档.从布局中删除视图的一种简单方法可能是,

layout.removeAllViews(); // then you will end up having a clean fresh layout
Run Code Online (Sandbox Code Playgroud)

  • removeAllViews()就是我要找的! (4认同)

Ame*_*een 7

要改变能见度:

predictbtn.setVisibility(View.INVISIBLE);
Run Code Online (Sandbox Code Playgroud)

删除:

predictbtn.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)


Kai*_*ang 5

来自Sameer和Abel Terefe的伟大答案。但是,当您删除视图时,可以选择删除具有特定ID的视图。这是你怎么做的。

1,在创建视图时为其指定一个ID:

_textView.setId(index);
Run Code Online (Sandbox Code Playgroud)

2,删除带有id的视图:

removeView(findViewById(index));
Run Code Online (Sandbox Code Playgroud)