Fragment getView () gibt immer null für Fragmente zurück, die von einem FragmentStatePagerAdapter erstellt wurden

8

Ich habe viel über Fragmente gelesen. Habe andere Leute gefunden, die Probleme beim Abrufen der Fragmentansicht haben, weil null immer zurückgegeben wurde, aber keine Antwort mein Problem gelöst hat. Ich versuche eine Bildergalerie zu erstellen. Ich habe ein Fragment, das eine Bildansicht enthält. Um die Fragmente anzuzeigen, benutze ich einen android.support.v4.view.ViewPager. Und um das ViewPager zu füttern benutze ich ein android.support.v4.app.FragmentStatePagerAdapter .

Das Problem ist, dass wenn alles erstellt wurde und die Bilder angezeigt werden, ich das aktuell angezeigte Bild auf der Festplatte speichern möchte. Also muss ich das aktuelle Fragment Imageview holen, aber ich kann nicht, weil fragment.getView () immer Null ist, die Aktivität, die mit dem Fragment verbunden ist, ist auch null und ich kann nicht herausfinden, warum es ist. Hier ein Code um zu sehen, ob hier jemand helfen könnte:

Das ist mein Fragment:

%Vor%

Und das ist mein Adapter:

%Vor%

Und das ist die Hauptaktivität, bemerken Sie den Kommentar mit dem get:

%Vor%

Sorry für die langen Quellen, ich habe alles geputzt was ich konnte, aber ich wollte alle spielenden Teile präsentieren. Könnte irgendjemand raten, was los ist?

Vielen Dank im Voraus.

    
Notbad 09.02.2013, 15:18
quelle

1 Antwort

31
  

Also muss ich das aktuelle Fragment Imageview holen, aber das kann ich nicht   fragment.getView () ist immer null, die mit dem   Fragment ist auch Null und ich kann nicht herausfinden, warum es ist.

Dies geschieht, weil Sie _iva.getItem(index); erwarten, um die Fragment zurückzugeben, die ViewPager für die Seite verwendet, die dem angegebenen Index entspricht. Das wird nicht passieren, da die ViewPager bereits die getItem -Methode aufgerufen hat, um die benötigten Fragmente zu erhalten und nach dem Aufruf der getItem -Methode erhalten Sie eine neue ImageViewURLFragment -Instanz. Diese neue Instanz ist nicht an Activity gebunden ( getActivity() gibt null zurück) und ihre Ansicht wurde nicht erstellt.

Wenn Sie FragmentStatePagerAdapter verwenden, versuchen Sie den folgenden Code, um das aktuell sichtbare Fragment :

zu erhalten %Vor%     
Luksprog 09.02.2013, 16:03
quelle