ListFragment下面的固定且始终可见的页脚

时间:2012-09-10 14:24:01

标签: android android-listview android-listfragment

我正在尝试将一个固定且始终可见的页脚附加到ListFragment的底部。

我目前正在这样做:

@Override public void onActivityCreated(Bundle savedInstanceState) {

    // ...

    adapter = new MyAdapter(getActivity(), R.layout.list, dataList);

    ListView list = getListView();
    View footer = ((LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_add, null, false);

    list.addFooterView(footer);
    setListAdapter(adapter);
}

虽然这段代码确实在列表的底部生成了一个视图,但它并没有真正做到我想要的:

首先,我需要页脚固定,即在屏幕上可见,无论列表的滚动位置如何。使用此解决方案,仅当屏幕滚动到列表底部时才会显示页脚。

其次,即使列表为EMPTY,我也需要显示页脚。在此解决方案中,当列表为空时,页脚不可见。

将固定页脚(在我的情况下,按钮)始终显示在ListFragment或ListActivity下方的最佳方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:40)

您可以在xml布局中执行此操作:

<RelativeLayout>

    <Button android:id="@+id/footer" android:layout_alignParentBottom="true"/> 
    <ListView android:id="@android:id/list" android:layout_above="@id/footer"> <!-- the list -->

</RelativeLayout>

此布局将用于片段的onCreateView方法。