0

如何告诉 Android 相对布局占用两个元素之间的所有空间。不管那个空间有多大。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical">



<TableLayout android:layout_below="@id/title_container"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id = "@+id/usb_config_title">

    <TableRow android:layout_gravity="center_horizontal">
        <TextView android:layout_width="398dp"
            android:layout_height="4px"
            android:text="     "/>
        <TextView android:layout_width="4px"
            android:layout_height="4px"
            android:text="     "
            android:background="@color/title_background"/>
        <TextView android:layout_width="398dp"
            android:layout_height="4px"
            android:text="     "/>
    </TableRow>


    <TableRow android:layout_gravity="center_horizontal">
        <TextView android:text="@string/usb_stick"
            android:layout_width="398dp" 

            android:gravity="center"
            android:layout_height="wrap_content"
            android:textSize="22dp"/>
        <TextView android:layout_width="4px"
            android:layout_height="fill_parent"
            android:text="     "
            android:background="@color/title_background"/>
        <TextView android:text = "@string/usb_internal_memory"

        android:layout_width="398dp" 
            android:gravity="center"
                android:layout_height="wrap_content"
            android:textSize="22dp"/>
    </TableRow>

    <TableRow android:layout_gravity="center_horizontal">
        <TextView android:layout_width="398dp"
            android:layout_height="5px"
            android:text="     "/>
        <TextView android:layout_width="4px"
            android:layout_height="5px"
            android:text="     "
            android:background="@color/title_background"/>
        <TextView android:layout_width="398dp"
            android:layout_height="5px"
            android:text="     "/>
    </TableRow>
</TableLayout>


<LinearLayout android:orientation="horizontal"
            android:layout_below="@id/usb_config_title"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
    <ListView
        android:id="@+id/list3"
        android:layout_width="398px"
        android:layout_height="wrap_content"

        android:drawSelectorOnTop="false"
        android:scrollbarAlwaysDrawVerticalTrack="true"
    />

    <TextView android:layout_width="4px"
        android:layout_height="fill_parent"
        android:text="     "
        android:background="@color/title_background"/>
    <ListView
        android:id="@+id/list4"
        android:layout_width="398px"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="false"
        android:scrollbarAlwaysDrawVerticalTrack="true"
    />
</LinearLayout>
<include layout="@layout/buttons_bottom_with_relative"/>      
</RelativeLayout>

所以我需要 id/list3 持续到按钮栏。目前 id/list3 被按钮栏覆盖。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:gravity="bottom"
            android:layout_weight="1"
    android:id="@+id/controls" 
    android:orientation="horizontal"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:baselineAligned="false"
    style="@android:style/ButtonBar"
    android:background="@drawable/bottom_layout_selector"
>
    <Button 
        android:layout_width="100px" 
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:id="@+id/startButton"
        android:text="@string/start" 
        android:visibility="invisible"
    />

    <Button 
        android:layout_width="100px" 
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:id="@+id/stopButton"
        android:text="@string/stop" 
        android:visibility="invisible"
    />

    <Button 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:id="@+id/nextButton"
        android:text="@string/next"
        android:visibility="invisible"
    />

    <Button 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:id="@+id/resetStatistics"
        android:text="@string/reset_statistics"
        android:visibility="invisible" 
    />

    <Button 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:id="@+id/histogramSettings"
        android:text="@string/histogram_settings"
        android:visibility="invisible" 
    />

    <Button 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:id="@+id/saveButton"
        android:text="@string/save"
        android:visibility="invisible"
    />

    <Button 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:id="@+id/loadConfig"
        android:text="@string/load_config"
        android:visibility="invisible" 
    />

    <Button 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:id="@+id/saveConfig"
        android:text="@string/save_config"
        android:visibility="invisible" 
    />

</LinearLayout>
4

2 回答 2

2

您是否尝试过将此添加到包含 list3 的线性布局中

    android:layout_below="@id/usb_config_title"
    android:layout_above="@id/controls"

所以线性布局将自己定位在这两者之间。

我认为您不能将 weight 属性用于相对布局。如果您将一种布局与屏幕顶部对齐,而将一种布局与底部对齐,则将中间的布局告诉其他两个布局的上方和下方,它应该填充空间

于 2012-09-18T09:20:59.447 回答
0

您可能需要设置相对布局的 layout_weight 属性,并将整个内容设置在 LinearLayout 中。如果您可以向我们展示您目前拥有的 XML,我们肯定可以看到!

于 2012-09-18T09:09:09.900 回答