我有一个有4-6个产品类别的ViewPager。当用户点击一个产品时,他们会被带到一个新的片段。当它们回击时,它们被发送回ViewPager,所有内容都必须重新加载,所有分页都已丢失。我可以通过缓存结果来节省重新加载的时间,但理想情况下,如果用户是26岁的结果,它们应该返回到其确切的滚动位置。然而,26个结果也可能是2页的分页(我们使用无休止的滚动)。我很惊讶Android没有一个内置的机制来处理这种常规的情况。我是不是遗漏了什么?
代码:
这就是我添加片段的方式:
private void addFragment(AppFragment fragment)
{
getSupportFragmentManager().beginTransaction().replace(R.id.fragment, fragment).addToBackStack(fragment.getTitle()).commit();
}我在onResume中什么都没有,我只使用了两个方法: OnCreateView和OnActivityCreated
发布于 2015-04-06 00:08:33
最脏和最简单的解决方案是在里面的片段中创建一个新的活动。在那里展示你的数据。每当用户按下back按钮时,他都会看到之前的活动。
但是,如果系统从ram中删除了您的数据(如果用户在其他活动或导航上花费了大量时间),您需要恢复状态。基本上,恢复您的数据并创建新的寻呼机适配器。然后,您需要将其设置为查看分页程序并调用setCurrentPage(position)。
祝你好运:)
发布于 2015-04-06 00:23:56
您应该在ViewPager中设置离屏限制属性。
ViewPager pager = (ViewPager) findViewById(R.id.viewPager); pager.setOffscreenPageLimit(2);
设置在空闲状态下应保留到视图层次结构中当前页两侧的页数。超出此限制的页面将在需要时从适配器重新创建。
https://stackoverflow.com/questions/29459153
复制相似问题