Nested Fragment ersetzen

  • 0 Antworten
  • Letztes Antwortdatum
DagobertDokate

DagobertDokate

Dauer-User
137
Guten Morgen,
Ich wollte man fragen wie ich Fragmente die andere Fragmente beinhalten zum austausch der Fragmente benutzen kann (Support Library):

Ich habe ein Fragment, das ein FrameLayout für eine Navigation beinhaltet, und eins für den Content.
Wenn ich jetzt aus der Navigation etwas auswählen möchte, möchte ich dass das übergeordnete Fragment das Content Fragment austauscht.
Dazu verwende ich folgendes Handler-interface:
Code:
package de.dagobert.dokate.test.own;

import java.io.Serializable;

public interface NavigationHandler extends Serializable {
    void handleNavigation(int navigation);
}
mein Fragment erweitert nun diese interface und wir als
Code:
public static NewsNavigationFragment newInstance(int index, NewsNavigationHandler handler) {
        NewsNavigationFragment frag = new NewsNavigationFragment();

        // Supply index input as an argument.
        Bundle args = new Bundle();
        args.putInt(INDEX, index);
        args.putSerializable(HANDLER, handler);

        frag.setArguments(args);

        return frag;
    }
übergeben.

Dies Funktioniert auch eigentlich. Nur sobald ich das Gerät drehe, kann ich in dem so gespeicherten Fragment mir keinen FragmentManager mehr holen, sonder bekomme immer null.
Übergeordnetes Fragment:
Code:
@Override
    public void handleNavigation(int tab) {
        Log.d(TAG, "handle navigation");
        // hier
        FragmentManager fm = getFragmentManager();
// hier
        Log.d(TAG, "FragmentManager :" + fm);
        FragmentTransaction trx = fm.beginTransaction();
        trx.replace(R.id.content, frag);
        trx.commit();
    }
Was mache ich falsch? bzw. warum kann das Fragment den FragmentManager nicht mehr benutzen?

lg. Dagobert
 
Zurück
Oben Unten