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



我想使用ListView在其中的新消息出现在屏幕底部的聊天视图(因此我使用android:stackFromBottom="true"),我想添加一个标题的ListView将出现在屏幕的顶部。当消息很少的时候,标题和消息之间会有一个空白的空间,当有很多消息的时候,ListView将是可滚动的,标题将被隐藏,当底部的消息是可见的(标题将与其余的消息一起滚动)。问题是,我不能告诉ListView让它的标题或项目填充屏幕上的剩余空间。Android:layout_height="fill_parent"没有帮助。我可以使用RelativeLayout使标题静态,但我不想这样做。什么好主意吗?

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

使用一个垂直的LinearLayout,标题在顶部,你的ListView在中间,layout_weight="1",然后是你的footer。

如果你想让Header是可滚动的一个解决方案。

将适配器中的位置1扩展为您想要滚动的标题。

只是做一个不同的布局,如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>

在activity中添加

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

最新更新