Android 隐藏/显示布局困难

Android 隐藏/显示布局困难,android,android-layout,android-linearlayout,android-relativelayout,Android,Android Layout,Android Linearlayout,Android Relativelayout,我有三个子线性布局,分别是RelativeLayout。我在同一RelativeLayout下以编程方式隐藏和显示所有三种布局 在上述三个子线性布局中,第一个Linearlayout内容比另外两个内容大。所以,每当我显示第二个LinearLayout时,它也会占用第一个LinearLayout的空间 我想在显示第二个线性布局时删除第一个线性布局占用的空间 为了更好地理解,我将我的xml布局粘贴到下面 <?xml version="1.0" encoding="utf-8"?> <

我有三个子线性布局,分别是
RelativeLayout
。我在同一
RelativeLayout
下以编程方式隐藏和显示所有三种布局

在上述三个子线性布局中,第一个
Linearlayout
内容比另外两个内容大。所以,每当我显示第二个
LinearLayout
时,它也会占用第一个
LinearLayout
的空间

我想在显示第二个线性布局时删除第一个线性布局占用的空间

为了更好地理解,我将我的xml布局粘贴到下面

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white" >

   <!-- ATC/TCAS/AIRSPACE -->

    <LinearLayout
        android:id="@+id/atcTypeLinear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:orientation="horizontal"
        android:visibility="gone" >

        <include
            android:id="@+id/atcType"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            layout="@layout/atc_incident_type" />
    </LinearLayout>

    <!-- Evacuation -->

    <LinearLayout
        android:id="@+id/mainEvoccutionLinear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:orientation="horizontal"
        android:visibility="gone" >

        <LinearLayout
            android:id="@+id/evocutionLinear"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Emergencies /Evacuation"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="@android:color/black"
                android:textStyle="bold" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:drawableRight="@drawable/editable"
                android:text="Details  "
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="@android:color/black"
                android:textStyle="bold" />

            <!-- Dyanmic check Box -->
        </LinearLayout>

        <LinearLayout
            android:id="@+id/secEvoLinear"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="100dp"
            android:layout_marginTop="25dp"
            android:orientation="vertical" >

            <!-- Dyanmic check Box -->
        </LinearLayout>
    </LinearLayout>
    <!-- Evolution layout over and start of collision near miss -->

    <LinearLayout
        android:id="@+id/collisionNearLinear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:orientation="vertical"
        android:visibility="gone" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableRight="@drawable/editable"
            android:text="Collision/Near Miss  "
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@android:color/black"
            android:textStyle="bold" />

        <!-- dynamic creation of check box -->
    </LinearLayout>
</RelativeLayout>


请大家帮帮我。

当使用RelativeLayout时,您需要为孩子们添加一些附加属性,以告诉Android您希望他们的布局。您有两种可能的选择,RelativeLayout和LinearLayout

相对布局 请注意,为了简洁起见,我遗漏了您的其他属性,但它们仍然应该包括在内。关键部分是下面的
android:layout_
属性。如果不包括这些视图,则视图只是像您已经观察到的那样彼此重叠地附着在一起

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white" >

    <LinearLayout
        android:id="@+id/atcTypeLinear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        ...

    </LinearLayout>

    <LinearLayout
        android:id="@+id/mainEvoccutionLinear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/atcTypeLinear" >

        ...

    </LinearLayout>

    <LinearLayout
        android:id="@+id/collisionNearLinear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/mainEvoccutionLinear" >

        ...

    </LinearLayout>

</RelativeLayout>

...
...
...
线性布局 另一个选项是仅使用LinearLayout作为父对象

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white" >

    <LinearLayout
        android:id="@+id/atcTypeLinear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        ...

    </LinearLayout>

    <LinearLayout
        android:id="@+id/mainEvoccutionLinear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        ...

    </LinearLayout>

    <LinearLayout
        android:id="@+id/collisionNearLinear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        ...

    </LinearLayout>

</LinearLayout>

...
...
...

谢谢你们的回复。 我简直不敢相信,我在我的
.java中犯了一个愚蠢的错误,我把layout
设置可见性
属性设置为
不可见
,而不是
消失了
对不起,伙计们。谢谢你接受我的回答。
再次感谢Thanx对我的帮助。:)

您想做什么?我想在显示第二个线性布局时删除第一个线性布局占用的空间。您是否尝试过在基本视图组中使用RelativeLayout以外的内容?
android:visiblity=“GONE”
//到所需视图回读我的答案,我可能误解了您的问题。是否将第一个LinearLayout的可见性属性设置为“已消失”,将第二个LinearLayout设置为“可见”,则第二个LinearLayout不会移动到父对象的顶部?