我们正在尝试创建一个基于 ViewPager 的 Android 应用程序,该应用程序在运行时接收添加和删除页面的指令。几乎就像选项卡式浏览器体验一样,您可以删除当前选项卡或删除特定选项卡。
根据 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 时,创建的第二页将是正确的蓝色。