13

Bu sabahki destek kitaplığının son düzeltmesinin (Android Support Package v4 revision 11) iç içe geçmiş parçaları desteklemesi bekleniyor.İç içe geçmiş Fragmanlar destek kütüphanesini kullanarak v4 revizyonu 11

Benim projemde ViewPager içeren bir parçam var ve bu ViewPager birkaç parça içeriyor.

Destek kitaplığının FragmentManager numarasını kullanmak için getFragmentManager yerine getSupportFragmentManager() numaralı telefonu arıyorum.

sorun hala gibi çöküyor yaşıyorum edilir:

java.lang.IllegalStateException: Recursive entry to executePendingTransactions 
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416) 
    at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461) 
    at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141) 
    at android.support.v4.view.ViewPager.populate(ViewPager.java:1012) 
    at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:523) 
    at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:495) 
    at android.support.v4.view.ViewPager.onRestoreInstanceState(ViewPager.java:1221) 
    at android.view.View.dispatchRestoreInstanceState(View.java:11910) 
    at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2584) 
    at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2590) 
    at android.view.View.restoreHierarchyState(View.java:11888) 
    at android.support.v4.app.Fragment.restoreViewState(Fragment.java:417) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:933) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088) 
    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444) 
    at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429) 
    at android.os.Handler.handleCallback(Handler.java:615) 
    at android.os.Handler.dispatchMessage(Handler.java:92) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4745) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
    at dalvik.system.NativeStart.main(Native Method) 

yapıyorum yanlış bir şey var mı? Ya da destek gerçek için iç içe geçmiş parçaları desteklemiyor mu?

My işlemler bu kadar basit:

getSupportFragmentManager().beginTransaction() 
        .replace(R.id.content, new MyFragment()).commit(); 
+0

yardımcı olmalıdır. Ne tür bir öğe R.id.content nedir? – Yahor10

+0

Bu bir 'FrameLayout'. –

+0

Bu makaleyi okudunuz mu? http://stackoverflow.com/questions/6185272/android-honeycomb-how-to-change-fragments-in-a-framelayout-without-re-creating – Yahor10

cevap

19

deneyin getSupportFragmentManager() yerine getChildFragmentManager() kullanarak. Bu,

+3

Ne? getChildFragmentManager() 'sadece parçaların içinde kullanılabilir ve getSupportFragmentManager()' sadece FragmentActivity içinde kullanılabilir mi? Bu nasıl çalışır? –

İlgili konular