我有一個問題。我有一個片段,其中包含viewpager
裏面。對於viewpager
我使用FragmentPagerAdapter擴展。每個pager fragment
內有recycler views
。 問題是我無法在屏幕旋轉後recycler views
的viewpager
恢復滾動位置。我認爲這個問題在recyclerview
,但很快我發現在viewpager
內部的屏幕旋轉片段正在重新創建之後,所以調用了onCreate()
和onDestroy()
,即使它們不應該。我也試過使用onSaveInstanceState(bundle)
,發現onCreateView()
裏面的這個bundle總是空的。所以我該怎麼做? This話題沒有幫助我。片段內的ViewPager不會恢復子片段的狀態
3
A
回答
3
好吧,我找到了答案。問題在於我)。有層次結構:MainActivity帶有框架佈局的片段 - PagerFragment包含viewpager - viewpager中的fagments。問題是,屏幕旋轉之後的活動中我是百達更換PagerFragment,如:
android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragment = new PagerFragment();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();
但我應該這樣做:
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
if (fragment == null) {
android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragment = new PagerFragment();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();
}
這完全是我的錯,我很慚愧。對不起。
相關問題
- 1. addToBackState()不恢復片段狀態
- 2. 保存RecyclerView狀態ViewPager內部片段另一個片段
- 3. 恢復ViewPager片段的演示者(MVP)
- 4. 在viewpager循環中恢復片段及其狀態
- 5. 片段內的ViewPager
- 6. 片段內的ViewPager
- 7. 如何恢復片段狀態onTouchEvent
- 8. 保留viewpager片段的狀態android
- 9. 恢復內部片段
- 10. ViewPager不會刷新片段
- 11. 導航抽屜+ ViewPager +片段,ViewPager不會銷燬嵌套片段
- 12. ViewPager片段內(NestedFragments)
- 13. 在片段內顯示片段viewpager
- 14. 由片段中的ViewPager控制的片段不會出現
- 15. Android ViewPager片段 - 維護狀態
- 16. Viewpager片段選擇器狀態
- 17. 帶片段的片段 - 保留狀態
- 18. 當從其他片段返回時不顯示(恢復)Viewpager片段
- 19. ViewPager中另一個片段的片段
- 20. 一個片段內的ViewPager不工作
- 21. GridView的Viewpager片段
- 22. Viewpager內部替換片段
- 23. Viewpager在片段不會得到更新導航回片段
- 24. ViewPager片段
- 25. TabLayout - ViewPager - 片段
- 26. Android ViewPager片段
- 27. Android viewpager片段
- 28. Viewpager與片段
- 29. 當按下並重新打開時,片段不會恢復其viewpager中的狀態
- 30. 片段內ViewPager內部的ViewGroup
你可以嘗試使用mViewPager.setOffscreenPageLimit(limit); – dex
@dex,我試過。它並沒有幫助我。實際上,它不應該是因爲viewpager在我滑動時保存了片段的狀態,但是當我旋轉屏幕時,位置就會丟失。對不起我的英語不好 –