0

我有三个 subLinearlayout RelativeLayout。我以编程方式隐藏和显示所有三种布局RelativeLayout

在以上所有三个 subLinearlayout 中,第一个Linearlayout内容比其他两个大。因此,当我显示第二个时LinearLayout,它也会占据第一个的空间LinearLayout

我想在显示第二个 LinearLayout 时删除 FirstLinear Layout 的占用空间。

为了更好地理解,我在下面粘贴了我的 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>

请大家帮帮我..

4

2 回答 2

0

使用 RelativeLayout 时,您需要向子级添加一些附加属性,以告诉 Android 您希望它们如何布局。您有两个可能的选项,RelativeLayout 和 LinearLayout;

相对布局

请注意,为简洁起见,我错过了您的其他属性,但它们仍应包括在内。关键部分是android:layout_below属性。如果你不包括它们,那么视图只是像你已经观察到的那样相互重叠。

<?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>
于 2013-07-19T15:19:25.200 回答
0

谢谢你们的回复。我不敢相信,我在我的.java布局setVisibility属性中犯了一个愚蠢的错误,INVISIBLE而不是GONEI Am sorry Guys。接受我的回答。感谢再次帮助我。:)

于 2013-07-20T06:09:49.550 回答