在Android中隐藏/取消隐藏内部布局

3

我需要有能力隐藏/显示(类似于View.GONE)Activity中的整个线性布局行。这是最好的方法吗?只需获取作为较大相对布局一部分的内部布局的引用,并将该内部布局的可见性设置为gone?此外,我应该保持对布局的引用,以便可以仅执行innerLayout.setVisibility(View.GONE)。如果是,请使用什么类型的引用?最终还是每次想要隐藏/显示时都进行查找更好?直接引用布局的某种方式似乎不太合适。另一方面,我不想将布局中的每个项目都设置为gone,也不想每次隐藏/显示时都进行查找。

或许添加/删除布局是更好的形式?但是那我需要在View层次结构中放置到正确的位置,将这种逻辑放入代码中也不是一个好主意。


在Activity中保留对布局的引用是完全可以的。类型可以是View,因为你只需要调用setVisibility。 - gngr44
你的问题/问题描述解决了我的问题。 - Msmit1993
1个回答

2
你的线性布局是在XML中设置还是通过编程实现的?
如果是在XML中设置:
请注意,如果任何视图在布局中使用此视图作为参考,例如android:layout_below="@+id/this",那么这并不是一个很好的想法。
你可以使用类似于以下内容的东西,它将隐藏所有子视图和自身,不是隐藏而是完全消失(不占用空间)。
如果您想在多个方法中使用它,请将其作为参考放在类中;如果您只想在某个方法中使用它,请将其作为参考放在该方法中。
View layout;

然后在onCreate方法中调用此函数

layout = findViewById(R.id.linearLayout);

然后让它消失:

layout.setVisibility(View.GONE);

或者

layout.setVisibility(8);

并且要将其取回

layout.setVisibility(View.VISIBLE);

或者
layout.setVisibility(0);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接