我正在尝试使用RelativeLayout
隐藏setVisibility(View.GONE)
。但它没有用。请检查我的代码:
<LinearLayout>
<RelativeLayout
android:id="@+id/AccelerometerView"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView />
<TextView />
<TextView />
<ImageView />
</RelativeLayout>
</LinearLayout>
我使用以下代码更改可见性:
private RelativeLayout tv;
tv = (RelativeLayout) findViewById(R.id.AccelerometerView);
tv.setVisibility(View.GONE);
我的方法是否正确?我知道我们可以单独隐藏TextView
这样的内容。但我想在一个命令中集中隐藏所有三个TextView
和ImageView
。还有其他办法吗?
答案 0 :(得分:4)
您可以创建方法来动态更改布局tv
的可见性。
将布局设置为启动时所需的任何可见性。
我在这里包含了检查,因为它是其他一些代码的一部分,如果您想要在可见性上包含布尔检查,可能会很有用。
在您的活动正文中声明您的观点,因此可以通过任何方法访问它。
的活动:
RelativeLayout tv;
OnCreate中:
tv = (RelativeLayout) findViewById(R.id.AccelerometerView);
使用这些方法来控制可见性。
不在create:
中public void setLayoutInvisible() {
if (tv.getVisibility() == View.VISIBLE) {
tv.setVisibility(View.GONE);
}
}
public void setLayoutVisible() {
if (tv.getVisibility() == View.GONE) {
tv.setVisibility(View.VISIBLE);
}
}
如果您不希望其他元素被INVISIBLE元素取代,请使用GONE。你可以在大多数情况下使用这个原则。
http://developer.android.com/reference/android/view/View.html
答案 1 :(得分:3)
您的代码必须正常工作,但尝试从xml属性设置布局可见性
<RelativeLayout
android:id="@+id/AccelerometerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone>
答案 2 :(得分:3)
好的,就默认行为而言,setVisibility也适用于所有子视图。
尝试使用
android:visibility="gone"