如何一次隐藏Android中的布局中的所有元素?

Bar*_*Pro 2 eclipse layout android elements hide

我正在开发eclipse中的Android应用程序.

我有一个XML,它有两个彼此相邻的线性布局.左边有几个按钮,可以在右边显示内容.但是,我不仅喜欢这些按钮来显示特定内容,还隐藏(setVisibility.GONE)该布局中的所有其他内容.我已经尝试过removeAllViews,但这不适合我,因为它删除了它们.所以我的想法是隐藏(设置可见性消失)每一个东西,然后制作我希望可见的东西.我问这个的原因是,为所有12个按钮设置所有内容(实际上是24个)的可见性需要花费太多时间.

提前致谢

布局代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/alap"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ScrollView
        android:id="@+id/scrollView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/imageView3"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/imageView4" >

        <LinearLayout
            android:layout_width="197dp"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/lewis" />

            <Button
                android:id="@+id/first"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/first" />

            <Button
                android:id="@+id/second"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/second" />

        </LinearLayout>
    </ScrollView>

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:scaleType="center"
        android:src="@drawable/cpr1" />

    <ImageView
        android:id="@+id/imageView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:scaleType="center"
        android:src="@drawable/epizodok" />

    <LinearLayout
        android:id="@+id/def"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/imageView3"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/scrollView2"
        android:layout_toRightOf="@+id/scrollView2"
        android:orientation="vertical"
        android:visibility="visible" >

        <ImageView
            android:id="@+id/image1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/lewis"
            android:visibility="gone" />

        <ImageView
            android:id="@+id/image2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher"
            android:visibility="gone" />

    </LinearLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

Mr.*_*ndy 6

请试试这个......

<LinearLayout
        android:id="+id/ll"
        android:layout_width="197dp"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <!-- All content which you hide/show put here -->

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

现在在你的类文件中你读到了这个.

LinearLayout ll = (LinearLayout) findViewById(R.id.ll);
Run Code Online (Sandbox Code Playgroud)

之后根据您的要求,您可以隐藏/显示此布局及其所有内容.

喜欢:隐藏.

ll.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

对于秀.

ll.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)

当您隐藏/显示LinearLayout时,此布局的所有内容也会自动隐藏/显示.


Bho*_*att 6

简单地说,只需在"def"线性布局中采用垂直布局的另一个线性布局.根据需要更改其可见性.

<LinearLayout
        android:id="@+id/def"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/imageView3"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/scrollView2"
        android:layout_toRightOf="@+id/scrollView2"
        android:orientation="vertical"
        android:visibility="visible" >
     <LinearLayout
        android:id="@+id/Subdef"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <ImageView
            android:id="@+id/image1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/lewis"
            android:visibility="gone" />

        <ImageView
            android:id="@+id/image2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher"
            android:visibility="gone" />
</LinearLayout>
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)


Rag*_*ddy 5

无需隐藏视图,而只需使用ViewFlipper概念.只需使用这样的两个线性布局在xml文件中声明视图鳍状肢

    <Viewflipper android:id="@+id/myViewFlipper" android:layout_height="wrap_content" android:layout_width="match_parent">
    <LinearLayout android:id="@+id/layout1" android:layout_height="wrap_content" android:layout_width="match_parent"></LinearLayout>
    <LinearLayout android:id="@+id/layout2" android:layout_height="wrap_content" android:layout_width="match_parent"></LinearLayout>
   </Viewflipper>
Run Code Online (Sandbox Code Playgroud)

并在这样的java代码中获取viewflipper引用

Viewflipper mFlipper = (Viewflipper)findViewById(R.id.myViewFlipper);
Run Code Online (Sandbox Code Playgroud)

使用mFlipper.showNext(),使用mFlipper.showPrevious()方法隐藏和显示它的布局.