首先,我使用FragmentStatePagerAdapter为ViewPager提供要显示的片段.
当app处于运行状态(即之后onResume())时,在ViewPager上调用setAdapter将始终工作并使我的ViewPager刷新,getItem(int position)调用适配器中的方法.
但是在方向更改后,如果我在onCreate(Bundle savedInstance)我的activity 的方法中调用setAdapter,getItem(int position)则不会调用该方法,并且会重用旧的片段.
我想也许FragmentManager正在做一些我不明白的事情?片段管理器是在方向更改期间唯一不会被破坏的东西.
谢谢
我在Android上实现了一个简单的无限滚动GridView.我有以下组件:
这似乎工作得很好,除非在这种情况下适配器无限增长...我的意思是每当用户滚动到最后时我会继续向这个适配器附加项目,这似乎是一个内存问题.
实现无限适配器的正确方法是什么?我正在寻找概念,而不是为我做这件事的第三方罐子.
谢谢
解决方案
明确的答案有正确的理论.我对它的实现将加载的数据备份到sqllite数据库中,因此总体流程是:在线程中从Internet下载数据,解析并将数据存储到线程中的数据库中,在UI线程上触发notifyDataChanged.
适配器的getCount()方法只是从数据库中执行select count(id),它会立即从数据库中检索一批对象到内存中供适配器使用.