2016-07-19 4 views
0

Gibt es wesentliche Änderungen in dieser Methode oder etwas in Bezug auf Fragmente?Änderung in getSupportFragment(). GetFragments() in Android Version 22 bis 23

Ich erlebe dieses Problem bei, ich verwende die Liste der Fragmente in der Tätigkeit bekommen:

getSupportFragmentManager().getFragments()

Ich habe eine Liste von Fragment von meinem Adapter als

    folgt
  • Fragment A
  • Fragment B

nun die Liste mit mir aus der getFragments() Methode bekam, kann ich

Der Code funktioniert 22 jedoch für Version feine jede dieser Fragmente mit ihrem Index, 0 für Fragment A, dann 1 für Fragment B. holen, wenn Ich habe auf Version 23 aktualisiert, die Reihenfolge kehrt sich plötzlich um.

Mit Index 0 bekomme ich Fragment B und benutze Index 1, stattdessen bekomme ich Fragment A. Und es bringt meinen Code durcheinander.

Jeder hat eine Idee, warum das passiert?

Beachten Sie, dass ich nicht sicher bin, ob es wirklich das Versionsupdate ist, das dies verursacht. Ich nehme nur an, weil das nur passiert, wenn ich in meinem Version 23 Code bin.

Antwort

0

Die Dokumentation erwähnt keine Änderung als solche. Das Folgende enthält die Dokumentation

Ruft eine Liste aller Fragmente ab, die dem Fragmentmanager hinzugefügt wurden.

Das ist alles. Es wird nicht über die Reihenfolge gesprochen, in der die s zurückgegeben werden. Es muss etwas anderes geben, das die Reihenfolge beeinflusst. Ich fürchte, du musst in die Quelle schauen.

Da die Dokumentation überhaupt nicht über die Bestellung spricht, glaube ich nicht, dass Sie es helfen können, selbst wenn es eine Änderung gibt.

+0

Nein, es ist in Ordnung. Ich möchte nur verstehen, warum es passiert ist. Ich kann einen Patch machen, um die Reihenfolge der Fragmentliste umzukehren, wenn ich das Fragment hole, aber ich bin nicht einmal sicher, ob es wirklich die Liste oder ein anderes Muster umkehrt. danke für den Tipp, ich denke, ich werde nur in den Quellcode selbst schauen. – kishidp

+0

@kishidp Ich empfehle wirklich, die Liste umzukehren und per Index abzurufen. Sie sollten in der Lage sein, Ihre Fragmente auf eine robuste Weise zu identifizieren, oder Sie werden mit 'NullPointerException' enden. – vyastech