5

ich schließlich in die neuen verschachtelten Fragmenten APIs in der support library Revision der Suche 11.Nested-Fragment mit falscher Aktivität Referenz nach Konfigurationsänderung

Alles Es recht gut funktioniert, bis ich versuchte, die Aktivität Referenz durch die verschachtelte gehalten zu verwenden Fragmente. Nach einer Konfigurationsänderung scheint die childFragment nicht losgelöst und erneut an die neue Aktivität gebunden.

Grundsätzlich ist meine childFragment in einer inkonsistenten Zustand, aus dem ich die richtige Aktivität Instanz mit getActivity() nicht bekommen kann.

Ich verpflegt, um die richtige mit getParentFragment() .getActivity() und es funktioniert, aber ich glaube nicht, dass das der richtige Weg ist.

hier ist der Code verwende ich das Fragment in dem parentFragment zum ersten Mal an, danach das Fragment automatisch wieder in den parentFragment hinzugefügt:

 public void addChildFragment() { 
      Fragment f = getFragment().getChildFragmentManager().findFragmentByTag(FRAGMENT_CHILD_TAG); 
      if (f == null) { 
       FragmentTransaction ft = getFragment().getChildFragmentManager().beginTransaction(); 

       f = new TrackBrowserFragment(); 
       f.setArguments(getFragment().getArguments()); 

       ft.add(R.id.fragment_album_detail_child_fragment_layout, f , FRAGMENT_CHILD_TAG); 
       ft.commit(); 
      } 
     } 

Diese inkonsequent in der Aktivitätsinstanz offensichtlich zu mehreren problemen mit meinem fragment (bindet mit dienste, broadcast empfänger und so weiter). Ich mache wahrscheinlich etwas falsch, weil ich nicht denke, dass dies das korrekte Verhalten eines verschachtelten Fragments ist.

so:

Bin ich etwas falsch mit dem Code zu tun? Ist dies das erwartete Verhalten eines verschachtelten Fragments?

Fehle ich etwas? Soll ich es selbst lösen/befestigen?

Dank

+0

Können Sie den Fehler posten, die Sie sehen, und auch, wie Sie anrufen addChildFragment() –

+0

Ich fand welches war das Problem, mit setRetainInstance() im Elternfragment macht das Kind nicht deatchiert. –

+0

Ich wusste, dass Sie das verschachtelte Fragment nicht behalten können, aber ich erinnere mich nicht daran, etwas über das Elternfragment zu sehen. Ich frage mich, ob dies das beabsichtigte Verhalten ist. – paul

Antwort

1

fand ich weicht aus dem Problem war, ich setRetainInstance (true) im Elternfragment wurde mit und dass das Kind Fragment gehalten gelöst werden.

Nachdem ich entfernt diese Zeile alles wie erwartet funktioniert

Verwandte Themen