[英]Android list view wrap content until a certain size based on footer size
我正在开发一个Android应用程序。
在XML布局中,我需要执行以下操作:
我在顶部有一个列表视图(listViewProducts),下面有另一个相对视图(receiptSection)。
列表视图应占用与项目一样多的空间。 其余部分由receiptSection拍摄。
例如,如果我在listViewProducts中有2个项目:
列表视图与2个项目一样大,其余部分由receiptView获取。
如果我添加另一个项目,列表视图现在占用更多空间并将receiptView推低:
但是,如果我添加更多项目,我希望列表视图高度停止增长,以留下不能变小的receiptView的最小高度:
如图所示,receiptVIew的最小高度为50dp。 一旦收据视图达到该高度,它应该停止收缩,现在列表视图具有基于剩余空间的固定大小。 其余的将是可滚动的。
我试过了什么
我创建了一个列表视图。 我有android:layout_alignParentTop="true"
和android:layout_height="wrap_content"
。
这将使其内容增长并位于视图的顶部
<ListView
android:id="@+id/listViewProducts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true" >
</ListView>
我创建了一个RelativeLayout,它将保存一个单独的xml布局文件中的checkout_receipt_view。
对于这个视图我有android:layout_alignParentBottom="true"
和android:layout_below="@id/listViewProducts"
,它将使它在列表视图下方并与视图的底部对齐。
我还使用android:minHeight="50d"
来设置receiptSection的最小高度。
<RelativeLayout
android:id="@+id/receiptSection"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_below="@id/listViewProducts"
android:minHeight="50dp" >
<include layout="@layout/checkout_receipt_view" />
</RelativeLayout>
listViewProducts随着项目的增长而增长,而receiptView正在正确地占用剩余空间。
然而问题是最小高度不起作用。 列表视图继续无限增长,receiptSection将被推出视图。
当receiptView达到50dp时,有没有办法让listView停止增长?
非常感谢您的帮助。
尝试交换'layout_below'。
你实际上说的是以下内容:请将我的相对布局放在列表视图之下。 如果您希望listview尊重relativelayout的高度,您必须在listview中说:
<ListView
android:id="@+id/listViewProducts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/receiptSection"
android:layout_alignParentTop="true" >
</ListView>
你的亲戚:
<RelativeLayout
android:id="@+id/receiptSection"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:minHeight="50dp" >
<include layout="@layout/checkout_receipt_view" />
</RelativeLayout>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.