我有三个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>
请大家帮助我..
答案 0 :(得分: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>
答案 1 :(得分:0)
谢谢你们的回复。
我无法相信,我在.java
我的布局setVisibility
属性中向INVISIBLE
而不是GONE
犯了一个愚蠢的错误。我很抱歉。接受我的答案。
而且Thanx再次帮助我。 :)