簡體   English   中英

隱藏/顯示布局困難

[英]Hide/show Layout difficulties

我有RelativeLayout三個subLinearlayout。 我在同一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>

請大家幫我..

使用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>

謝謝你們的回應。 我無法相信,我在.java犯了一個愚蠢的錯誤,我將布局setVisibility屬性設置為INVISIBLE而不是GONE對不起,各位。 對於接受我的答案。 再次感謝Thanx的幫助。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM