13 Stimmen

Verschachtelte Fragmente mit Unterstützung der Bibliothek v4 Version 11

Die letzte Revision der Support-Bibliothek von heute Morgen (Android Support Package v4 revision 11) soll verschachtelte Fragments unterstützen.

In meinem Projekt habe ich ein Fragment, das einen ViewPager enthält, und dieser ViewPager enthält mehrere Fragments.

Ich rufe getSupportFragmentManager() auf, anstatt getFragmentManager zu verwenden, um den FragmentManager der Support-Bibliothek zu nutzen.

Das Problem ist, dass ich immer noch Abstürze wie folgt erlebe:

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)

Mache ich etwas falsch? Oder unterstützt die Library tatsächlich keine verschachtelten Fragments?

Meine Transaktionen sind so einfach wie diese:

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

0 Stimmen

Was für ein Elementtyp ist R.id.content?

0 Stimmen

Hast du diesen Artikel gelesen? stackoverflow.com/questions/6185272/…

0 Stimmen

Ich habe es gerade gemacht, aber ich glaube nicht, dass das damit zusammenhängt. Mein Problem betrifft das Verschachteln der Fragmente, das Ersetzen funktioniert gut. :)

19voto

user1837704 Punkte 214

Versuche getChildFragmentManager() anstelle von getSupportFragmentManager() zu verwenden. Das sollte helfen

3 Stimmen

Was? getChildFragmentManager() kann nur innerhalb von Fragmenten verwendet werden und getSupportFragmentManager() kann nur innerhalb von FragmentActivity verwendet werden? Wie soll das jemals funktionieren?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X