【发布时间】:2013-07-12 11:29:36
【问题描述】:
我使用viewpager,里面有几个片段,大部分片段都由一个列表视图组成。我要检查其中之一。我尝试使用某些人建议的方法来解决无休止的滚动(因为我从外部数据库加载数据):
if(position==getCount()-1){
LoadMore();
}
所以每次用户向下滚动到最后一个项目时,它都会向列表视图添加更多项目。假设我滑开,那个片段被破坏了。然后过了一会儿我回去了,现在会发生什么?该片段已销毁,因此OnCreateView() 方法再次运行,现在仅在列表视图中加载了原始数量的项目(10)。但是列表视图的位置不知何故在最后(在 10 处),现在我所做的任何事情(再次向上和向下滚动)LoadMore() 函数都不会运行。 listview.getCount() 又是 10,所以应该没有问题。为什么会这样?还有为什么上面的代码在往回刷之后就再也没有运行了?
谢谢!
【问题讨论】:
-
你在使用 fragmentpageradapter 吗?
-
我使用 FragmentStatePagerAdapter
-
保存状态只不过是在您的情况下保存列表视图中的项目数。默认情况下,android在内存中只保留左一页和右一页。其他页面将被销毁,当您滑回被销毁的页面时,将调用 onCreateView 并重新创建片段。因此,您必须保存状态
-
好的,我阅读了有关 fragmentpageradapters 的信息,所以我真的必须保存状态,您的链接对我理解保存状态的行为有很大帮助。我以另一种方式使用片段,所以我将在另一个问题中问它。
标签: android listview android-viewpager fragment