我希望OK
/ Cancel
按钮固定在底部(即使列表中有更多项目可以在屏幕上显示)。以下是目前的情况:
按钮位于顶部,而不是底部。
包含按钮的布局:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="true"
android:id="@+id/buttons_layout">
<TableRow>
<Button
android:id="@+id/btnOK"
android:background="@color/pomegranate"
android:text="OK"
android:layout_gravity="fill_horizontal"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btnCancel"
android:background="@color/wet_asphalt"
android:text="Cancel"
android:layout_weight="1"
android:layout_gravity="fill_horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</TableRow>
</TableLayout>
复合布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@+id/options_list"
android:layout_width="fill_parent"
android:layout_height="match_parent">
</ListView>
<include layout="@id/buttons_layout"
android:layout_alignParentBottom="true"
android:layout_height="match_parent"
android:layout_below="@id/options_list"/>
</RelativeLayout>
我遵循了我在http://developer.android.com/guide/topics/ui/layout/relative.html
上阅读的指南我尝试了这个答案 - https://stackoverflow.com/a/6285438/168719 - 它没有帮助我。
我怀疑它可能不起作用,因为列表视图“不知道”它有多高,所以按钮布局也不知道在哪里放置自己。但我通过将ListView高度设置为100dp之类的任意值来排除它。按钮仍然叠加在它上面。
我摆弄了所有布局属性,但我无法让它工作。
除了解决方案之外,我还想知道为什么我的工作不起作用......
答案 0 :(得分:1)
布局应该是这样的:
<?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="match_parent">
<ListView android:id="@+id/options_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/layout_buttons" >
</ListView>
<include android:id="@+id/layout_buttons"
layout="@id/buttons_layout"
android:layout_alignParentBottom="true"
android:layout_height="wrap_parent"
android:layout_width="wrap_content"/>
</RelativeLayout>
答案 1 :(得分:0)
答案 2 :(得分:0)
你可以试试这种方式
<relativelayout1>
<relativelayout2 specify layout below listview with id="list">
<button1>
<button2>
</relativelayout2>
<listview id="list">
</listview>
</relativelayout1>
所以这样可以确保无论您的列表有多长,您都可以获得列表下方的按钮。所以你可以在列表下面有一个滚动列表和一个静态按钮
答案 3 :(得分:0)
试试这个。将include
标记放在另一个RelativeLayout
内,然后确保ListView
位于新RelativeLayout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parentLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/buttonsContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true" >
<include
android:id="@+id/buttons"
android:layout_width="wrap_content"
layout="@layout/buttons_layout" />
</RelativeLayout>
<ListView
android:id="@+id/options_list"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_above="@id/buttonsContent" >
</ListView>
</RelativeLayout>
答案 4 :(得分:0)
试试这个
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/layout_buttons"
android:orientation="vertical" >
<ListView android:id="@+id/options_list"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
<include android:id="@+id/layout_buttons"
layout="@id/buttons_layout"
android:layout_alignParentBottom="true"
android:layout_height="wrap_parent"
android:layout_width="wrap_content"/>
</RelativeLayout>