这是一个我遇到问题的布局(这适用于ListActivity):
<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="match_parent" >
<TextView
android:id="@+id/path"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true" />
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/path" />
<TextView
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@android:id/list" />
<Button
android:id="@+id/negative_button"
style="@style/Button"
android_alignParentBottom="true"
android:layout_below="@android:id/empty"
android:layout_weight="1" />
</RelativeLayout>
现在发生的事情是列表位于标题TextView
(“路径”)下面,按钮位于底部也应该如此,但ListView
未对齐标题(textview)和页脚(按钮)之间。相反,按钮只是在listview的顶部打了一下。我该如何解决这个问题?
答案 0 :(得分:1)
您需要在列表前定义页脚和标题,尝试以下内容:
<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="match_parent" >
<TextView
android:id="@+id/path"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<!-- to see the button, you must to declare its width/height here
and not (as I think you did) in the style.xml -->
<Button
android:id="@+id/negative_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Button"
android:layout_alignParentBottom="true" />
<!-- also layout_weight doesnot change anything in RelativeLayout -->
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/path"
android:layout_above="@id/negative_button" />
<TextView
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@android:id/list" />
</RelativeLayout>
答案 1 :(得分:0)
TextView
“空”不应低于TextView
“空”。
如果Button
必须位于屏幕底部,您可以使用
android:layout_alignParentBottom="true"
对于Button
否则您可以使用此布局:
<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="match_parent" >
<TextView
android:id="@+id/path"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true" />
<LinearLayout
android:id="@+id/container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/path">
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@android:id/list" />
</LinearLayout>
<Button
android:id="@+id/negative_button"
style="@style/Button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/container" />
</RelativeLayout>
或者始终将Button
添加为Listview
的页脚:
mListView.addFooterView(mButton);
http://developer.android.com/reference/android/widget/ListView.html#addFooterView(android.view.View)
答案 2 :(得分:0)
您使用的唯一内容是ListView
,第一个TextView
作为“顶栏”,Button
作为“底栏”,对吧?如果是这种情况,为什么你保持空TextView
?
尝试删除它并尝试此布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/path"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<!-- work also with android:layout_height="0dip" -->
<Button
android:id="@+id/negative_button"
style="@style/Button"
android:layout_gravity="bottom"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
看到这些问题,它可能会对你有所帮助:
1. Layout for ListView at top and Buttons in Bottom?
2. Android Layout with ListView between a "top bar" and "bottom bar"
3. Add a button in bottom of listview when the listview is empty (using ListActivity)
希望这会有所帮助,你会得到预期的结果。