所以我正在开发一个屏幕,顶部有一些图像和按钮,下面是一个列表视图,显示了一些活动的列表。
设计是这样的: -
现在在较小的屏幕上,ListView高度变得非常小,因为上面的图标和图像占用了屏幕空间。
那么我怎样才能增加Linearlayout或ListView的高度,以便用户可以滚动到查看ListView的其余部分。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
.... Other Layouts .....
<ListView
android:id="@+id/listArea"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:paddingLeft="@dimen/list_padding"
android:paddingRight="@dimen/list_padding" />
</LinearLayout>
编辑:尝试使用顶视图作为List的标题,但由于我也想要一个EmptyView,这会产生一个问题,因为它取代了整个标题+ listview
答案 0 :(得分:1)
从我读到的有关该问题的内容中,您应将顶部的视图指定为header of the list,并且会正确滚动。
Afaik只有在列表非空时才有效,因为空视图会替换整个列表,包括标题。
答案 1 :(得分:0)
您可以使用weightSum和layout_weight属性来控制子视图占用的父级可用空间量。要使用这些,父级布局(例如,LinearLayout)将获取android:weightSum
属性。每个子布局都会获得android:layout_weight
属性,其中所有子权重的总和是父级的weightSum。此外,每个孩子的layout_height
或layout_width
都应设置为0dp
,具体取决于权重。
以下是基于图表的示例。假设您希望两个顶视图分别占据屏幕的1/4,而ListView
占据下半部分。将android:weightSum="4"
添加到LinearLayout
,将android:layout_weight="1"
添加到您使用...Other Layouts...
表示的两个子布局,将android:layout_weight="2"
添加到ListView
。代码可能如下所示:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="4">
<ImageView
android:layout_weight="1"
android:layout_height="0dp"
...some other attributes.../>
<LinearLayout
android:layout_weight="1"
android:layout_height="0dp"
android:orientation="horizontal"
...some other attributes...>
...some children of the LinearLayout...
</LinearLayout>
<ListView
android:id="@+id/listArea"
android:layout_width="match_parent"
android:layout_height="0dp"
android:paddingLeft="@dimen/list_padding"
android:paddingRight="@dimen/list_padding"
android:layout_weight="2"/>
</LinearLayout>