Moh*_*ees 6 android android-layout
我试图隐藏一个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>
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码来更改可见性:
private RelativeLayout tv;
tv = (RelativeLayout) findViewById(R.id.AccelerometerView);
tv.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)
我的方法正确吗?我知道我们可以TextView单独隐藏这样的。但是我想在一个命令中同时隐藏所有三个TextView和全部ImageView。还有其他办法吗?
好的,就默认行为而言, setVisibility 也适用于所有子视图。
尝试使用
android:visibility="gone"
Run Code Online (Sandbox Code Playgroud)
在RelativeLayout 标记内的xml 中。如果视图仍然显示,则它正在代码中的某处更改。发布完整的代码,以便我们可以提供帮助。
您可以创建方法来tv动态更改布局的可见性。将布局设置为启动时所需的可见性。
我在这里包括了检查,因为它是其他一些代码的一部分,如果您想对可见性进行布尔检查,可能会很有用。
在活动的主体中声明您的视图,以便可以通过任何方法进行访问。
活动:
RelativeLayout tv;
Run Code Online (Sandbox Code Playgroud)
Oncreate:
tv = (RelativeLayout) findViewById(R.id.AccelerometerView);
Run Code Online (Sandbox Code Playgroud)
使用这些方法来控制可见性。
不在创建范围内:
public void setLayoutInvisible() {
if (tv.getVisibility() == View.VISIBLE) {
tv.setVisibility(View.GONE);
}
}
public void setLayoutVisible() {
if (tv.getVisibility() == View.GONE) {
tv.setVisibility(View.VISIBLE);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您不希望其他元素被INVISIBLE元素取代,请使用GONE。您可以在大多数情况下使用此原理。
http://developer.android.com/reference/android/view/View.html
| 归档时间: |
|
| 查看次数: |
5268 次 |
| 最近记录: |