【问题标题】:does FragmentPagerAdapter will restore view status automatic?FragmentPagerAdapter 会自动恢复视图状态吗?
【发布时间】:2017-01-11 07:19:48
【问题描述】:

我有一个带有 FragmentPagerAdapter 的 ViewPager。 ViewPager 有很多页面,当我滑动它时,会调用片段的一些方法。 我在“onCreateView”中创建一个新视图,并在“onActivityCreated”中初始化数据。 但它就像视图在重新创建后会自动恢复其状态一样。

我的意思是:寻呼机有 4 页。我将列表视图滚动到第 1 页的底部,然后将寻呼机滑动到第四页,然后将其滑动到第一个。列表视图显示在底部。但实际上列表视图是一个新的。为什么?

代码:

class MyFragment extends Fragment{
    View onCreateView(){ 
        ListView listview=new ListView();
        return listview;
    }

    void onActivityCreated(){
        List list=getdata();
        listview.setAdapter(new Adapter(list));
    }
}

顺便说一句:我的片段中没有视图。 我不调用 ViewPager.setOffscreenPageLimit()。 我在 onCreateView 中创建了一个新视图。 我在 onActivityCreated 中创建了一个新的 Adapter。

那么为什么列表视图可以自动定位到底部(我上次滚动到的任何位置)?

我在 Fragment 或 FragmentPagerAdapter 中找不到执行此操作的任何代码。

【问题讨论】:

    标签: android fragment


    【解决方案1】:

    在FragmentManagerImpl中有一个名为moveToState的方法,当fragment移出时会调用saveFragmentViewState()方法,会调用fragment视图的“saveHierarchyState”方法,所以状态被保存并保持fragment.and fragmentmanagerimple 会自动恢复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      相关资源
      最近更新 更多