【发布时间】:2011-07-26 03:28:43
【问题描述】:
我想在ListView 下显示一个按钮。问题是,如果ListView 被扩展(添加的项目......),按钮就会被推出屏幕。
我尝试了带有权重的LinearLayout(如Android: why is there no maxHeight for a View? 中所建议的那样),但要么我的权重错误,要么它根本不起作用。
另外,我在某处发现了使用RelativeLayout 的提示。然后ListView 将设置在带有android:layout_above 参数的按钮上方。
问题是我不知道之后如何定位按钮。在我找到的示例中,ListView 下方的视图是使用android:layout_alignParentBottom 调整的,但我不希望我的按钮紧贴屏幕底部。
除了使用 setHeight 方法和一些计算所需空间之外还有什么想法吗?
编辑: 我得到了很多有用的答案。
bigstone 和 user639183 的解决方案几乎完美运行。但是,我必须在按钮底部添加一个额外的填充/边距,因为它仍然会被推到屏幕的一半(但随后停止)
如果您希望将按钮固定到屏幕底部,Adinia 仅使用相对布局的答案就可以了。这不是我想要的,但可能对其他人有用。
-
AngeloS 的解决方案是我最后选择的,因为它只是创建了我想要的效果。不过,我对按钮周围的
LinearLayout做了两个小改动:首先,由于我不想在布局中包含任何绝对值,因此我将
android:layout_height="45px"更改为wrap_content,这样也可以正常工作。其次,由于我希望按钮水平居中,仅垂直
LinearLayout支持,因此我将 android:orientation="horizontal" 更改为 "vertical"。
AngeloS 在他最初的帖子中还表示,他不确定
ListView周围的LinearLayout中的android:layout_weight="0.1"参数是否有任何效果;我刚试过,它确实做到了!没有,按钮会再次被推出屏幕。
【问题讨论】:
-
这样内部相对布局比屏幕长,一步可以添加
android:layout_alignParentBottom="true"。但要明确一点,当项目很少时,您是否希望按钮保持连接到 ListView 的底部?如果是,看看 Rich 怎么说。 -
是的,这就是我想要的。
-
多年后,由于 ConstraintLayout,我们现在拥有最大高度:stackoverflow.com/questions/42694355/…
标签: android listview layout android-layout