Android - ViewPager恢复后退按钮

时间:2015-04-05 15:54:51

标签: android android-fragments android-viewpager back-button

我有一个拥有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

2 个答案:

答案 0 :(得分:1)

肮脏和最简单的solutuon是在片段里面创建一个新的活动。向那里显示您的数据。每当用户按下后退按钮时,他将看到之前的活动。

但是,如果系统从ram中删除您的数据(如果用户在其他活动中花费了很多时间或导航更多),则需要恢复状态。基本上,恢复数据并创建新的寻呼机适配器。然后,您需要将其设置为查看寻呼机并调用setCurrentPage(position)。

祝你好运:)

答案 1 :(得分:0)

您应该在ViewPager中设置屏幕外限制属性 ViewPager pager = (ViewPager) findViewById(R.id.viewPager); pager.setOffscreenPageLimit(2);

  

将处于空闲状态的视图层次结构中当前页面任一侧应保留的页数设置为空闲状态。超出此限制的页面将在需要时从适配器重新创建。