-1

在列表视图中添加/删除和定位页脚有什么好处?在ListView下方的区域显示不是更好吗?动态添加/删除页脚可能会发生错误。此外,在添加时出现(如果我错了,请纠正我),每次添加页脚时都需要重置适配器。

这是我最终用于将页脚视图添加到列表视图的方法,它显示了添加/删除的内容。

  private void addFooterView(ListView listView, View footerView)
{
    if ((listView != null) && (footerView != null))
    {
        listView.removeFooterView(footerView);
        listView.addFooterView(footerView);
        if (listView.getAdapter() != null)
        {

           listView.setAdapter(mInTheatersMostPopularAdapter);
        }
    }

}
4

1 回答 1

1

如果列表视图已经有一个适配器,如果您尝试添加页眉或页脚视图(“固定”视图),它将引发异常(我认为是非法状态)。这是因为如果在设置适配器时列表具有固定视图,它会将您的适配器包装在 HeaderViewListAdapter 中。

如果要动态更改列表视图中的页脚,则需要取消当前适配器添加固定视图,然后重置适配器。如果您没有对您的适配器的引用,您可以从列表视图中获取它,但请检查它是否是 HeaderViewListAdapter。如果是,请在其上调用 getWrappedAdapter 并将其保留为局部变量,同时按顺序 setAdapter(null)、addFooterView(footer)、setAdapter(oldAdapterHere)。

您可以通过操纵驱动适配器的数据并让它处理不同的视图类型来模拟页眉和页脚。页眉和页脚视图在您在屏幕上下滚动时不会被回收,因此需要考虑性能 - 它们总是会占用全部内存,但您不会每次都重新填充、布局、膨胀等。

于 2012-08-18T00:34:00.637 回答