在我的应用程序中,我将视图动态添加到线性布局中。每个视图由一个按钮组成,如果单击该按钮,则视图将被删除。如何刷新线性布局?因为当我删除任何视图时,视图的位置将被更改。
答案 0 :(得分:15)
删除任何可以使用的视图
ll.removeView(view)// to remove particular view
ll.removeViewAt(position);// to remove view from particular position
使用以下逻辑从布局中删除任何视图
ll.post(new Runnable() {
public void run() {
ll.removeView(view);
}
});
答案 1 :(得分:5)
你的问题不是那么清楚。但您可以尝试将视图设置为visibility = gone。
答案 2 :(得分:2)
通过删除或添加视图,linearlayout必须再次测量和布局其所有子项,这就是移动的原因。您可以尝试将可见性设置为不可见。
myLinearLayout.setVisibility(View.INVISIBLE);
任何设置为隐藏的视图仍会保留其大小和布局中的位置,但无法再看到。
答案 3 :(得分:1)
如何刷新线性布局?
linearLayoutObject.invalidate()
如何从线性布局中删除项目?
linearLayoutObject.removeView(View view);
或
linearLayoutObject.removeViewAt(int index);
我希望它有所帮助..
答案 4 :(得分:0)
你试过吗
setContentView(R.layout.main);
删除后?
答案 5 :(得分:0)
使用带有适配器的listview来动态填充数据(因为这就是它们的用途)以及每当您的数据或UI被更改时,创建新的适配器(数据集)并通知适配器有关更改。
答案 6 :(得分:0)
只需使用linearLayout.removeView(View view); 它会自动刷新。
答案 7 :(得分:0)
layout.removeAllViewsInLayout(); layout.invalidate();
我希望这个帮助