1

我使用了Android兼容包與API級別10.我有一個FragmentActivity,並在其onCreate方法,我動態地添加一個新創建的片段實例(myPagerFragment):父片段使用不顯示兒童ViewPager

getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, myPagerFragment).commit(); 

myPagerFragment包含一個使用FragmentPagerAdapter的ViewPager。該實現是根據Android文檔沒有什麼特別的。當在ViewPager子片段中的一個的按鈕被點擊,則該myPagerFragment將使用移除並用新的片段的實例(myOtherFragment)代替:

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out); 
ft.replace(R.id.fragment_container, myOtherFragment).commit(); 

的myOtherFragment顯示包含一個按鈕的簡單視圖。當點擊這個按鈕,然後myOtherFragment將被刪除,並使用與myPagerFragment的新實例更換一次:

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out); 
ft.replace(R.id.fragment_container, myPagerFragment).commit(); 

此時myPagerFragment不再顯示,因爲它在一開始做,而是顯示黑屏。沒有崩潰,在日誌中沒有任何用處。

我已經嘗試過使用其他視圖的方法,例如,用包含簡單視圖定義的片段替換myPagerFragment,並且這種方式可以正常工作,並且和預期的一樣。只有包含ViewPager的碎片,在連續加載時顯示不正確。

如何讓包含ViewPager的碎片始終正確顯示?

回答

2

你不能在片段中嵌套片段。因此,您不能在FragmentViewPager中輸入FragmentPagerAdapter。請重新設計您的用戶界面以解決此衝突,例如通過擺脫最外層的Fragment

+1

請注意,嵌套'片段'現在**可用**,請參閱[這個問題](http://stackoverflow.com/questions/6221763/android-can-you-nest-fragments) – 2014-07-27 02:03:51