我有一个Layout,其中包含一个ListView下面的一些按钮。
我想要的是将按钮固定在屏幕底部。
当ListView有多个项目(超过适合屏幕的项目)时,代码工作正常,按钮显示在屏幕底部。
但是,当ListView为空或不需要滚动时,按钮会出现在屏幕上(它们不会固定在底部)。
这是布局(省略了一些细节,但我可以在必要时添加它们):
<LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView />
<ListView
android:width="fill_parent"
android:height="wrap_parent"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal|bottom"
android:orientation="horizontal"
android:layout_weight="0" />
<Button
android:layout_weight="1" />
<Button
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
我期望将第二个LinearLayout的“重力”设置为“底部”,以使按钮固定在屏幕的底部,但它在上述情况下不起作用。
有什么想法吗?
感谢。
答案 0 :(得分:1)
您将顶部LinearLayout的layout_height设置为wrap_content。这意味着它会随着内容的缩小而缩小。尝试将其设置为fill_parent。或者,给它一个layout_weight为1。
答案 1 :(得分:0)
其中一个选项是创建TextView,当它为空时将显示而不是listview。
您可以使用listView.setEmptyView(emptyView)
然后将此TextView的layout_weight设置为与listview相同的权重。所以当listview为空时,它的位置将由emptyView占用,按钮将保持固定在底部。
同时将emptyView设置为android:gravity="center"
。
其他选择: