2017-07-26 157 views
0

我具有显示相同的片段的不同实例,但一个FragmentStatePagerAdapter具有不同数据,如下所示:多个实例

class MyAdapter extends FragmentStatePagerAdpater{ 

    public MyAdapter (FragmentManager fm){ 
     super(fm); 
    } 

    public Fragment getItem(int i){ 
     Frag f = new Frag(); 
     f.setState(i); //sets the value of the "State" instance variable 
         //of the fragment 
     return f; 
    } 

    public int getCount(){ 
    return 100; 
    } 
} 

现在,我的问题是,由于FragmentStatePagerAdapter保存状态,并且由于不同的实例可能在onSaveInstanceState,中保存有不同的数据,那么FragmentStatePagerAdapter如何决定在需要重新创建碎片实例时要恢复哪个savedInstanceState重新显示?

回答

0

如果你看到FragmentStatePagerAdapter的源代码,它看起来像状态保存和恢复基于位置。

+0

你能告诉我哪一行没有。在源代码中?我似乎无法找到你在说什么。 –

+0

看看'mSavedState'的用法。它们总是基于它们所属片段的位置进行索引。 – cwbowron

+0

哦,谢谢你的帮助。 @cwbowron –