我正在尝试在Android中设置一个活动,其中ScrollView的屏幕高度为50%,而ListView为50%。
为此,我将每个人的体重设定为“1”。
喜欢这个:
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dip">
<ScrollView android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1">
<TableLayout android:id="@+id/my_table"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:shrinkColumns="0">
<TableRow android:padding="5dip"
android:id="@+id/fault_heading"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/table_title"
android:paddingRight="20dip"/>
</TableRow>
<!-- More rows are added at run time. -->
</TableLayout>
</ScrollView>
<ListView android:id="@+id/comments"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"></ListView>
</LinearLayout>
如果ScrollView和ListView都有太多内容无法滚动显示,则效果非常好。
当ScrollView只需要20%的屏幕而ListView需要70%时,ListView会增长到70%,因此它可以在不滚动的情况下显示。这不是我预期会发生但是很好。
我遇到的问题是当ListView拥有如此多的数据以至于需要整个屏幕才能显示而Scroll视图中只有1或2行数据。在这种情况下,ListView增长几乎占据整个高度,并为滚动视图留下相当于一行文本的空间。
无论ListView有多大,我似乎无法理解如何为ScrollView保留一定比例的屏幕。
ScrollView可以抓取的空间量似乎与其子表中的行数成正比。当这只有1时,滚动视图的高度只有半厘米左右。
答案 0 :(得分:4)
如何将android:layout_height
更改为最小值而不是0dip
?
更新:根据下面的评论,解决方案是将外部LinearLayout设置为高度“fill_parent”
答案 1 :(得分:1)
在ListView部分
中使用这些参数 android:layout_height="0dp"
android:layout_weight="1"