簡體   English   中英

Android ViewPager屏幕旋轉

[英]Android ViewPager Screen Rotation

我有一個帶有ActionBarSherlock選項卡的Activity和一個ViewPager。 滾動頁面時,切換選項卡並更改選項卡,當前頁面也會更改。 我正在使用一個擴展FragmentStatePagerAdapter的類作為頁面視圖中的適配器。 問題是當設備旋轉時,不會調用頁面適配器中的getItem,看起來片段引用不正確。 這是一個很大的問題,因為用戶必須在尋呼機內完成一些字段。 這些字段在旋轉時正確恢復,但由於我對片段的引用不正確,我無法以正確的方式保存這些值。 關於輪換的任何想法?

將當前頁碼保存在onSavedInstanceState中:

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("item", mViewPager.getCurrentItem());
}

然后在onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if(savedInstanceState != null) {
         mViewPager.setCurrentItem(savedInstanceState.getInt("item"));
    }
}

我在https://stackoverflow.com/a/21517213/3170538的問題中發布了這個問題的解決方案。 基本上你想要繼承PagerAdapter,而不是FragmentPagerAdapter,並自己處理項目的創建和刪除(getItem()是一個從FragmentPagerAdapter.instantiateItem()調用的例程,所以問題是當屏幕旋轉時,例程沒有'重新調用getItem(),因為一些可能是性能增強的代碼。當你繼承它時,你可以通過不嘗試重新連接到已刪除的片段來正確處理旋轉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM