2017-07-26 213 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 –