14

在我的 ListActivity 中,我需要页眉和页脚视图(位于列表的顶部和底部)分别用作列表上的上一页和下一页按钮,因为我想一次只显示 20 个项目。

我通过以下方式设置我的页眉和脚视图:

getListView().addHeaderView(myHeaderView);
getListView().addFooterView(myFooterView);
setListAdapter(adapter);

这很好用,但我需要动态删除和添加这些页眉和页脚视图,因为我的列表中的某些页面可能没有下一页按钮或上一页按钮。

问题是,在调用 setListAdapter 后,我无法调用 addHeaderView 或 addFooterView。

有没有解决的办法?

4

3 回答 3

10

为什么不直接将页眉和页脚折叠为零高度,或者将按钮变灰(甚至更好)。

在我看来,最好的用户体验是在需要时(即滚动时)动态加载更多项目,就像内置的 Gmail 应用程序一样。

于 2010-01-07T01:47:34.933 回答
3

是的,这是ListView组件中的错误或疏忽。您可以通过编写自己的WrapperListAdapter处理添加和删除固定列表项的方法来解决此问题,但我可以告诉您这并不完全简单。

ListView或者——而且更容易——您可以在放置下一个和上一个按钮的位置上方或下方添加一个固定组件。

于 2010-01-07T01:48:25.150 回答
2

每次需要添加标题视图时如何重置适配器,如下所示:

ListView.FixedViewInfo headerInfo = getListView().new FixedViewInfo();
headerInfo.isSelectable=false ;
headerInfo.view = feedInfoView;
headerInfos.add(headerInfo);
headerViewListAdapter = new HeaderViewListAdapter(headerInfos,null,adapter);
getListView().setAdapter(headerViewListAdapter);
于 2010-06-29T10:01:51.457 回答