0

我有三个子线性排列RelativeLayout。我隐藏并在同一RelativeLayout下以编程方式显示所有三种布局。隐藏/显示布局困难

在所有以上三个子线性排列中,第一个Linearlayout的内容与其他两个相比较大。所以当我展示第二个LinearLayout时,它也占据了第一个空间LinearLayout

我想在显示第二个LinearLayout的时候删除FirstLinear 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" > 

    <!-- 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> 

我的XML布局请专家帮助我..

+0

你想做什么? – WhiskThimble

+0

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

+0

您是否尝试过使用除了RelativeLayout以外的其他基础ViewGroup? – invertigo

回答

0

谢谢你们的回应。 我不敢相信,我犯我的.java一个愚蠢的错误我使版面setVisibility财产INVISIBLE而不是GONE我很抱歉的家伙。接受我的答案。 和Thanx再次帮助我。 :)

0

当使用RelativeLayout的,你需要一些额外的属性添加到孩子告诉Android的你想怎么他们摆放。你有两种可能的选择:RelativeLayout和LinearLayout;

的RelativeLayout

请注意,我已经错过了你的简洁其他属性,但他们仍然应该包括在内。关键部分是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

另一种选择就是使用的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>