Android ListView:填充屏幕上剩余空间的页眉/页脚

时间:2011-04-26 15:05:10

标签: android android-listview

我想使用ListView创建一个类似聊天的视图,其中新消息出现在屏幕的底部(因此我使用android:stackFromBottom =“true”)并且我想向ListView添加一个标题,它将出现在屏幕的顶部。当消息很少时,标题和消息之间会有一个空格,当有大量消息时,ListView将可滚动并且标题将被隐藏,当底部消息可见时(标题将随之滚动)其余的消息)。 问题是我无法告诉ListView让它的标题或项目填满屏幕上的剩余空间。 android:layout_height =“fill_parent”没有帮助。我可以使用RelativeLayout使标头静态,但我不想。有什么想法吗?

3 个答案:

答案 0 :(得分:0)

为什么不直接将列表视图放在包含3行的表格布局中。将listview放在中间行,然后使用顶行和底行作为页眉和页脚。

答案 1 :(得分:0)

在垂直方向使用LinearLayout,标题位于顶部,ListView位于中间,layout_weight =“1”,然后是页脚。

一种解决方案,如果您希望Header可滚动。 是将适配器中的位置1膨胀为要滚动的标题。

答案 2 :(得分:0)

只需制作不同的布局,例如header_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:background="@drawable/listitem_background"
    android:layout_marginLeft="4dip" android:layout_marginRight="4dip"
    android:gravity="center_vertical|center_horizontal"
>

        <TextView android:id="@+id/nearByLabel" 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:text="Load More Results" 
            android:textColor="#000"
            android:textStyle="bold"
            android:textSize="20sp"
            />

</LinearLayout>

在您的活动中添加

View headerView = inflater.inflate(R.layout.header_list, null);
yourlistView.addHeaderView(headerView);