Android layout_below工作方式

时间:2013-04-16 17:20:20

标签: android layout android-listview

所以我有一个包含ListView的布局......在ListView下面我有各种其他元素......我的问题是如果ListView获取了很多元素,那么底部的元素从屏幕上消失....我怎么能解决这个问题?

我的布局:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:id="@+id/header"
             android:orientation="horizontal"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:layout_alignParentTop="true">

            <TextView android:id="@+id/name_header"
                android:textSize="18sp"
                android:textStyle="bold"
                android:layout_marginLeft="10sp"
                android:layout_marginTop="5sp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0.6"
                android:text="@string/product"
            />

            <TextView android:id="@+id/quantity_header"
                android:textSize="18sp"
                android:textStyle="bold"
                android:layout_marginTop="5sp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0.2"
                android:text="@string/quantity"
                android:gravity="center"
            />

            <TextView android:id="@+id/total_price_header"
                android:textSize="18sp"
                android:textStyle="bold"
                android:layout_marginTop="5sp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0.2"
                android:text="@string/price"
                android:gravity="center"
            />

        </LinearLayout>

        <View android:id="@+id/line"
            android:layout_width="match_parent"
            android:layout_height="2dip"
            android:background="#FF0000" 
            android:layout_below="@+id/header"
        />


        <ListView
            android:id="@+id/listViewOrder"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/line"
            android:layout_marginTop="10sp"
            android:layout_centerHorizontal="true" >
        </ListView>

        <View android:id="@+id/line2"
            android:layout_width="match_parent"
            android:layout_height="2dip"
            android:background="#FF0000" 
            android:layout_marginTop="10sp"
            android:layout_below="@+id/listViewOrder"
        />


        <TextView android:id="@+id/total_cost"
            android:textSize="18sp"
            android:textStyle="bold"
            android:layout_marginTop="5sp"
            android:layout_marginBottom="15sp"
            android:layout_marginRight="5sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:layout_below="@+id/line2"
        />

        <RadioGroup android:id="@+id/radio"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_below="@+id/total_cost">

            <RadioButton android:id="@+id/radio_home"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/radio_home"
                android:layout_marginRight="20sp"
                android:onClick="onRadioButtonClicked"
            />
            <RadioButton android:id="@+id/radio_work"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/radio_work"
                android:onClick="onRadioButtonClicked"
            />
        </RadioGroup>



</RelativeLayout>

由于

编辑:问题出在我的方法中......我需要的是一个TableLayout ......而且外面的元素是ScrollView

1 个答案:

答案 0 :(得分:0)

在listView上放置layout_above。如果你在下面的视图中使用layout_below,它将首先调整listview的大小,然后找到一个放置在它下面的东西的地方,它将在屏幕外。如果你在listView上执行layout_above将它放在这些元素上面,它将首先布置它下面的元素,然后将listview布局在那些元素之上,强制它进入剩余的空间。只记得把最底部的项目与父母的底部对齐。