android - 如何隐藏相对布局及其所有子布局?

标签 android android-layout

我正在尝试使用 setVisibility(View.GONE) 隐藏 RelativeLayout。但它不起作用。请检查我的代码:

<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。但我想在一个命令中一起隐藏所有三个 TextViewImageView。还有其他办法吗?

最佳答案

您可以创建方法来动态改变布局 tv 的可见性。 将布局设置为您在启动时需要的任何可见性。

我在这里包含了检查,因为它是其他一些代码的一部分,如果您想要包含对可见性的 bool 检查,它可能会很有用。

在您的 Activity 主体中声明您的 View ,以便可以通过任何方法访问它。

Activity :

RelativeLayout tv;

创建:

tv = (RelativeLayout) findViewById(R.id.AccelerometerView);

使用这些方法来控制可见性。

不在创建范围内:

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

关于android - 如何隐藏相对布局及其所有子布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32290841/

相关文章:

android - Android Activity 生命周期

Android TextView 在屏幕右侧被截断

android - 为什么 onCreate() 在 onConfigurationChanged 之后被调用?

java - 运行时错误阻止我的待办事项应用程序启动

javascript - 多种 Google Analytics 跟踪方式 - 移动网络应用程序和 native 应用程序

android - 带有 SwipeRefresh 的 ListView 上的 MarginLayoutParams ClassCastException

android - 如何动态添加布局文件

java - 解析谷歌加登录

android - 如何更改应用程序的 UI 以匹配 Android 中的操作系统行为

安卓开发 : Accessing external SD card directly on Samsung devices (with extSdCard path)?