在我的ListActivity中,我需要页眉和页脚视图(在列表的顶部和底部)分别用作列表中的上一页和下一页按钮,因为我想一次只显示20个项目
通过执行以下操作来设置标题和英尺视图:
getListView().addHeaderView(myHeaderView);
getListView().addFooterView(myFooterView);
setListAdapter(adapter);
这很好用,但我需要动态删除并添加这些页眉和页脚视图,因为我列表中的某些页面可能没有下一页按钮或上一页按钮。
问题是,在调用setListAdapter之后,我无法调用addHeaderView或addFooterView。
有解决方法吗?
答案 0 :(得分:10)
为什么不将页眉和页脚折叠到零高度,或者将按钮变灰(甚至更好)。
在我看来,最好的用户体验是在需要时(例如滚动时)动态加载更多项目,就像内置的Gmail应用程序一样。
答案 1 :(得分:3)
是的,这是ListView
组件中的错误或疏忽。您可以通过编写自己的WrapperListAdapter
处理添加和删除固定列表项来解决此问题,但我可以告诉您,这并不是一件容易的事。
或者 - 更容易 - 您可以在放置下一个和上一个按钮的ListView
上方或下方添加固定组件。
答案 2 :(得分: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);