1

所以我正在开发一个屏幕,上面有一些图像和按钮,下面是一个列表视图,显示了一些活动的列表。

设计是这样的:- 设计

现在在较小的屏幕上,由于上​​面的图标和图像占用了屏幕空间,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>

编辑:尝试使用顶视图作为列表的标题,但由于我也想要一个 EmptyView,这会产生问题,因为它替换了整个标题 + 列表视图

4

2 回答 2

1

从我读到的关于该问题的内容中,您应该将顶部的视图指定为列表的标题,并且会正确滚动。

Afaik 这仅在列表非空时才有效,因为空视图会替换整个列表,包括标题。

于 2013-07-31T17:06:35.853 回答
0

您可以使用weightSumlayout_weight属性来控制子视图将占用多少父级可用空间。要使用这些,父布局,例如,您的 LinearLayout,获取android:weightSum属性。每个子布局获取android:layout_weight属性,其中所有子权重的总和是父权重的总和。此外,每个孩子都应该有他们的layout_heightlayout_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>
于 2013-07-31T17:21:26.830 回答