如何告诉Android relativelayout占用两个元素之间的所有空间。这个空间无关紧要

时间:2012-09-18 08:48:00

标签: android android-layout relativelayout

如何告诉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>

2 个答案:

答案 0 :(得分:3)

您是否尝试将此添加到包含list3

的线性布局中
    android:layout_below="@id/usb_config_title"
    android:layout_above="@id/controls"

因此,线性布局将自己定位在这两者之间。

我认为你不能使用相对布局的权重属性。如果您将一个布局与屏幕顶部对齐,然后将一个布局对齐到底部,则将中间的一个布局对齐到另外两个布局,并将其填入空间

答案 1 :(得分:0)

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