遵循Google文档,我们使用FragmentStatePagerAdapter,这是在有大量页面的情况下使用的,更像列表视图.
但是当我们试图:
– 删除不在屏幕上的页面
– 并从同一个类创建一个新的片段对象
– 并删除页面的相同位置
我们注意到,AndroID平台恢复了死板,并向用户显示.我们刚刚创建的新对象根本不运行“onCreate”,“onCreateVIEw”或“onActivityCreated”.
我们正在寻找解决这个问题的方法,迫使平台使用同一个类中的新的片段对象.有任何想法吗?
我们发现,如果我们销毁当前页面,平台确实销毁了该页面,并从同一个类创建了一个新的对象.这是一个复制问题和这种行为的小例子.
资料来源:http://dl.dropbox.com/u/8333012/SimpleAdapter/SimplePager.zip
视频:http://www.youtube.com/watch?v=-oaXXwU8PSI&hd=1
当您触摸第一页上的TextVIEw时,该项目旨在将第二页(绿色)移除到新的蓝页.你会看到,即使这样做从第一页第二页仍然是绿色.但是当您按第二页上的后退AndroID按钮(绿色)并触摸TextVIEw时,创建的第二个页面将是正确的蓝色.
解决方法 当您处理ListVIEw并更改适配器的底层数据时,调用notifyDataSetChanged(),并且反映数据集的任何视图将刷新自身.这是你应该用碎片寻呼机适配器的方式.在您的情况下,您不通知适配器.但是,在FragmentPagerAdapter / FragmentStatePagerAdapter的情况下,由于这些适配器默认忽略notifyDataSetChanged()“,因此没有任何区别.为了使其工作覆盖您的适配器实现中的getItemposition()
@OverrIDepublic int getItemposition(Object object) { return position_NONE;}
正如已经说过的,你添加/删除片段后调用(在你的showOtherPage()中)
mAdapter.notifyDataSetChanged();总结
以上是内存溢出为你收集整理的android – 销毁ViewPager和FragmentStatePagerAdapter上的页面全部内容,希望文章能够帮你解决android – 销毁ViewPager和FragmentStatePagerAdapter上的页面所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)