2012-09-10 22 views
14

我想附加一个页脚,这是固定的,始终可见,到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下的最佳方式是什么?

谢谢!

回答

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方法一起使用。

+0

即使我使用的是ListFragment,而不是普通的旧片段,这样做还是可以的吗?或者我将不得不将其转换为碎片? – gcl1

+0

@ gcl1“ListFragment”是View的一个简单的'ListView',其ID为'android.R.id.list'。你仍然可以使用'ListFragment',你只需要重写'onCreateView'方法并从我的答案返回布局。当前'ListFragment'的其余代码将保持不变。 – Luksprog

+0

谢谢,让我试试.... – gcl1