L'ultima revisione della libreria di supporto da questa mattina (Android Support Package v4 revision 11) si suppone per sostenere frammenti nidificate.Frammenti nidificati che utilizzano libreria di supporto v4 revisione 11
Nel mio progetto ho un frammento che contiene un ViewPager e questo ViewPager contiene diversi frammenti.
Sto chiamando getSupportFragmentManager()
anziché getFragmentManager
per utilizzare lo FragmentManager della libreria di supporto.
Il problema è che io sono ancora sperimentando crash come:
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)
C'è qualcosa che sto facendo male? O il supporto non supporta i frammenti annidati per davvero?
mie transazioni sono così semplici come questo:
getSupportFragmentManager().beginTransaction()
.replace(R.id.content, new MyFragment()).commit();
Che tipo di elemento è R.id.content? – Yahor10
È un 'FrameLayout'. –
Hai letto questo articolo? http://stackoverflow.com/questions/6185272/android-honeycomb-how-to-change-fragments-in-a-framelayout-without-re-creating – Yahor10