Fragment
Letzte Aktualisierung | Stabile Version | Release-Kandidat | Beta-Ausgabe | Alphaversion |
---|---|---|---|---|
12. Februar 2025 | 1.8.6 | - | – | - |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von Fragment hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle
für Ihre App oder Ihr Modul die Abhängigkeiten für die erforderlichen Artefakte hinzu:
Cool
dependencies { def fragment_version = "1.8.3" // Java language implementation implementation "androidx.fragment:fragment:$fragment_version" // Kotlin implementation "androidx.fragment:fragment-ktx:$fragment_version" // Compose implementation "androidx.fragment:fragment-compose:$fragment_version" // Testing Fragments in Isolation debugImplementation "androidx.fragment:fragment-testing-manifest:$fragment_version" androidTestImplementation "androidx.fragment:fragment-testing:$fragment_version" }
Kotlin
dependencies { val fragment_version = "1.8.3" // Java language implementation implementation("androidx.fragment:fragment:$fragment_version") // Kotlin implementation("androidx.fragment:fragment-ktx:$fragment_version") // Compose implementation("androidx.fragment:fragment-compose:$fragment_version") // Testing Fragments in Isolation debugImplementation("androidx.fragment:fragment-testing:$fragment_version") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.8
Version 1.8.6
12. Februar 2025
androidx.fragment:fragment-*:1.8.6
wird veröffentlicht. Version 1.8.6 enthält diese Commits.
Fehlerkorrekturen
- Für die
setOnApplyWindowInsetsListener
-Überschreibung vonFragmentContainerView
wird jetzt ein Null-Listener verwendet, der den Vorgaben des Frameworks entspricht. (I575f0, b/282790626)
Version 1.8.5
30. Oktober 2024
androidx.fragment:fragment-*:1.8.5
wird veröffentlicht. Version 1.8.5 enthält diese Commits.
Fehlerkorrekturen
- Behoben wurde ein Problem, bei dem
IllegalStateException
nur dann durchsaveBackStack
ausgelöst wurde, wenn eine Geste für die Vorhersage der Rückwärtsnavigation abgebrochen oder unterbrochen wurde. (I3387d, b/342419080)
Version 1.8.4
2. Oktober 2024
androidx.fragment:fragment-*:1.8.4
wird veröffentlicht. Version 1.8.4 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem bei Verwendung von AndroidX-Übergängen Fragmente abstürzten, wenn die Rückwärtstaste des Systems schnell gedrückt oder die Wischgeste zum Zurückgehen schnell ausgeführt wurde. (Ibc038, b/364804225)
- Ein Problem in Fragmenten wurde behoben, bei dem durch Unterbrechung einer vorweggenommenen Zurück-Geste der Fragmentmanager in einen undefinierten Zustand versetzt wurde und sogar das falsche Fragment angezeigt wurde. (If82e2, b/338624457)
- Ein
UninitializedPropertyAccessException
inAndroidFragment
wurde behoben, wenn die Klasse, die von IhrerAndroidFragment
-Instanz verwendet wird, dynamisch ausgetauscht wurde. (I12dea)
Version 1.8.3
4. September 2024
androidx.fragment:fragment-*:1.8.3
wird veröffentlicht. Version 1.8.3 enthält diese Commits.
Fehlerkorrekturen
FragmentManager
berücksichtigt jetzt ausstehende Vorgänge korrekt, wenn die Geste „Zurückvorhersagen“ ausgeführt wird. Dadurch sollte verhindert werden, dass eine Systemwiederherstellung zu einerIndexOutOfBoundsException
führt. (I9ba32, b/342316801)AndroidFragment
stürzt nicht mehr ab, wenn es der Komposition hinzugefügt wird, während der Status der enthaltenen Aktivität/des enthaltenen Fragments bereits gespeichert ist. (I985e9, b/356643968)
Version 1.8.2
24. Juli 2024
androidx.fragment:fragment-*:1.8.2
wird veröffentlicht. Version 1.8.2 enthält diese Commits.
Fehlerkorrekturen
AndroidFragment
verarbeitet jetzt Fälle, in denen das übergeordnete Fragment in den Rückstapel des Fragments gelegt wird, richtig. So werden Probleme wie „Keine Ansicht für die ID gefunden“ vermieden, wenn zu diesem Fragment zurückgesprungen wird. (I94608)- Fragmente, die über die
FragmentTransaction.add
-Methode hinzugefügt werden und einViewGroup
enthalten, warten jetzt aufonContainerAvailable
, bevor sie mitonStart()
fortfahren. Das wirkt sich auf Nutzer dieser API aus, z. B. aufAndroidFragment
, die jetzt wartet, bis dieAndroidFragment
wieder in die Komposition eintritt, bevor sie sie durchonStart()
weiterleitet. (I94608)
Version 1.8.1
26. Juni 2024
androidx.fragment:fragment-*:1.8.1
wird veröffentlicht. Version 1.8.1 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem Fragmente ohne Container sofort
DESTROYED
wurden, wenn eine vorweggenommene Zurück-Geste gestartet wurde. Jetzt bleiben sie im StatusCREATED
, bis die Geste abgeschlossen ist. (If6b83, b/345244539)
Version 1.8.0
12. Juni 2024
androidx.fragment:fragment-*:1.8.0
wird veröffentlicht. Version 1.8.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.7.0
- Das
fragment-compose
-Artefakt enthält jetzt einAndroidFragment
Composable
, mit dem Fragmente über den Namen der Fragmentklasse in die Compose-Hierarchie eingefügt werden können. Der Status des Fragments wird automatisch gespeichert und wiederhergestellt. Diese Methode sollte als direkter Ersatz für den zuvor empfohlenen Ansatz verwendet werden, bei dem ein Fragment mitAndroidViewBinding
aufgebläht wird. - Der
onBackStackChangeCancelled
-Callback auf derOnBackStackChangedListener
-Benutzeroberfläche vonFragmentManager
wird jetzt im Rahmen der Ausführung von Vorgängen inFragmentManager
ausgelöst, was ihn dem Timing desonBackStackChangeCommitted
-Callbacks näher bringt.
Version 1.8.0-rc01
29. Mai 2024
androidx.fragment:fragment-*:1.8.0-rc01
wird veröffentlicht. Version 1.8.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Der
onBackStackChangeCancelled
-Callback auf derFragmentManagers OnBackStackChangedListener
-Benutzeroberfläche wird jetzt im Rahmen der Ausführung von Vorgängen inFragmentManager
ausgelöst, was ihn dem Timing desonBackStackChangeCommitted
-Callbacks näher bringt. (I5ebfb, b/332916112)
Version 1.8.0-beta01
14. Mai 2024
androidx.fragment:fragment-*:1.8.0-beta01
wird veröffentlicht. Version 1.8.0-beta01 enthält diese Commits.
Fehlerkorrekturen
- Ab Fragment
1.7.1
: Die Vorhersagefunktion für die Rückwärtsnavigation wird jetzt nur noch für Transaktionen ausgeführt, bei denen alle Fragmente entweder einen Animator oder einen suchbaren AndroidX-Übergang haben. Dadurch wird ein Problem behoben, bei dem das Abbrechen einer teilweise suchbaren Transaktion zu einem schwarzen Bildschirm führte. (I43037, b/339169168)
Version 1.8.0-alpha02
17. April 2024
androidx.fragment:fragment-*:1.8.0-alpha02
wird veröffentlicht. Version 1.8.0-alpha02 enthält diese Commits.
Fehlerkorrekturen
- Fragment
1.7.0-rc02
: Es wurden Protokolle hinzugefügt, um anzugeben, warum die Ausführung fehlschlägt, wenn einesharedElement
ohne weitere Übergänge festgelegt wird. (Iec48e) - Fragment
1.7.0-rc02
: Es wurde ein Fehler behoben, bei dem es zu einem Absturz kam, wenn einer Transaktion, bei der alle anderen Übergänge suchbar waren, ein nicht suchbares freigegebenes Element hinzugefügt wurde. Jetzt wird die Transaktion korrekt als nicht suchbar betrachtet. (I18ccd)
Version 1.8.0-alpha01
3. April 2024
androidx.fragment:fragment-*:1.8.0-alpha01
wird veröffentlicht. Version 1.8.0-alpha01 enthält diese Commits.
Neue Funktionen
- Mit der neuen
AndroidFragment
Composable
können Sie der Compose-Hierarchie über den Namen der Fragmentklasse Fragmente hinzufügen. Der Status des Fragments wird automatisch gespeichert und wiederhergestellt. Diese kann als direkter Ersatz für die AndroidViewBindingComposable
verwendet werden.(b/312895363, Icf841)
Änderungen an der Dokumentation
- Die Dokumentation für die
OnBackStackChangedListener
APIs wurde aktualisiert. Sie enthält jetzt Informationen dazu, wann sie aufgerufen werden und wie sie verwendet werden sollten. (I0bfd9)
Update der Abhängigkeiten
- Das Fragment hängt jetzt von Profile Installer 1.3.1 ab.
Version 1.7
Version 1.7.1
14. Mai 2024
androidx.fragment:fragment-*:1.7.1
wird veröffentlicht. Version 1.7.1 enthält diese Commits.
Fehlerkorrekturen
- Die Vorhersagefunktion für Rückwärtssprünge wird jetzt nur noch für Transaktionen ausgeführt, bei denen alle Fragmente entweder einen Animator oder einen suchbaren AndroidX-Übergang haben. Dadurch wird ein Problem behoben, bei dem beim Abbrechen einer teilweise suchbaren Transaktion ein leerer Bildschirm angezeigt wurde. (I43037, b/339169168)
Version 1.7.0
1. Mai 2024
androidx.fragment:fragment-*:1.7.0
wird veröffentlicht. Version 1.7.0 enthält diese Commits.
Unterstützung für die vorausschauende Geste „Zurück“
- Fragmente unterstützen jetzt die Vorhersage der In-App-Navigation bei Verwendung von
Animator
oder AndroidX Transition 1.5.0. So können Nutzer mit der Zurück-Geste das vorherige Fragment aufrufen, indem sie Ihren Animator/Übergang suchen, bevor sie sich entscheiden, die Transaktion durch Ausführen der Geste zu bestätigen oder abzubrechen.
Transition System | XML-Ressource | Unterstützt die intelligente „Zurück“-Geste |
---|---|---|
Animation |
R.anim |
Nein |
Animator |
R.animator |
Ja |
Framework Transition |
R.transition |
Nein |
AndroidX Transition mit Transition 1.4.1 oder niedriger |
R.transition |
Nein |
AndroidX Transition mit Transition 1.5.0 |
R.transition |
Ja |
Wenn Sie nach der Aktivierung der Geste für die Vorhersage der Rückwärtsnavigation Probleme mit der Unterstützung in Fragments feststellen, erstellen Sie bitte ein Problem für Fragment und fügen Sie ein Beispielprojekt hinzu, in dem das Problem reproduziert werden kann. Sie können die Vorhersagefunktion für die Rückwärtsnavigation deaktivieren, indem Sie FragmentManager.enabledPredictiveBack(false)
in den onCreate()
Ihrer Aktivitäten eingeben.
FragmentManager.OnBackStackChangedListener()
bietet jetzt die onBackStackChangeProgressed()
und onBackStackChangeCancelled()
zum Empfang von Ereignissen für den prognostizierten Rücklauffortschritt bzw. für abgebrochene Ereignisse.
Fragment Compose-Artefakt
Es wurde ein neues fragment-compose
-Artefakt erstellt, das sich auf die Unterstützung von Apps konzentriert, die gerade von einer fragmentbasierten Architektur zu einer vollständig auf Compose basierenden Architektur migrieren.
Die erste Funktion in diesem neuen Artefakt ist eine content
-Erweiterungsmethode für Fragment
, mit der die Verwendung von Compose für die Benutzeroberfläche eines einzelnen Fragments vereinfacht wird. Dazu wird eine ComposeView
für Sie erstellt und die richtige ViewCompositionStrategy
festgelegt.
class ExampleFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
) = content {
// Write your @Composable content here
val viewModel: ExampleViewModel = viewModel()
// or extract it into a separate, testable method
ExampleComposable(viewModel)
}
}
Version 1.7.0-rc02
17. April 2024
androidx.fragment:fragment-*:1.7.0-rc02
wird veröffentlicht. Version 1.7.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- Es wurden Protokolle hinzugefügt, die angeben, warum die Ausführung fehlschlägt, wenn eine
sharedElement
ohne weitere Übergänge festgelegt wird. (Iec48e) - Es wurde ein Fehler behoben, durch den es zu einem Absturz kam, wenn einer Transaktion, bei der alle anderen Übergänge suchbar waren, ein nicht suchbares freigegebenes Element hinzugefügt wurde. Jetzt wird die Transaktion korrekt als nicht suchbar betrachtet. (I18ccd)
Version 1.7.0-rc01
3. April 2024
androidx.fragment:fragment-*:1.7.0-rc01
wird veröffentlicht. Version 1.7.0-rc01 enthält diese Commits.
Update der Abhängigkeiten
- Das Fragment hängt jetzt von Profile Installer 1.3.1 ab.
Version 1.7.0-beta01
20. März 2024
androidx.fragment:fragment-*:1.7.0-beta01
wird veröffentlicht. Version 1.7.0-beta01 enthält diese Commits.
API-Änderungen
FragmentHostCallback
ist jetzt in Kotlin geschrieben, sodass die Nullbarkeit des generischen Typs des Hosts mit der Nullbarkeit des Rückgabetyps vononGetHost()
übereinstimmt. (I40af5)
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das ein Fragment, auf das eine Geste für die Vorhersage der Rückwärtsnavigation ausgeführt wurde, nicht zerstört wurde, wenn es sich nicht in einem Container befand. Das Fragment wird jetzt sofort in den Endzustand verschoben. (Ida0d9)
- Ein Problem in Fragmenten wurde behoben, bei dem einkommende Übergänge durch eine Touch-Geste für die Vorhersage der Rückwärtsbewegung unterbrochen wurden, wodurch die Ansicht beim Einblenden zerstört wurde und ein leerer Bildschirm angezeigt wurde. (Id3f22, b/319531491)
Version 1.7.0-alpha10
7. Februar 2024
androidx.fragment:fragment-*:1.7.0-alpha10
wird veröffentlicht. Version 1.7.0-alpha10 enthält diese Commits.
Fehlerkorrekturen
- Das bekannte Problem in der vorherigen Fragment-Version wurde behoben, bei dem bei Verwendung der Unterstützung für die Vorhersage von Rückschritten von Fragmenten für
Animator
oder AndroidX-Übergängen von Fragmenten eineNullPointerException
vonhandleOnBackProgressed
geworfen wurde, wenn noch nie eineFragmentManager.OnBackStackChangedListener
überaddOnBackStackChangedListener
hinzugefügt wurde. (I7c835)
Version 1.7.0-alpha09
24. Januar 2024
androidx.fragment:fragment-*:1.7.0-alpha09
wird veröffentlicht. Version 1.7.0-alpha09 enthält diese Commits.
Fragment Compose-Artefakt
Es wurde ein neues fragment-compose
-Artefakt erstellt, das sich auf die Unterstützung von Apps konzentriert, die gerade von einer fragmentbasierten Architektur zu einer vollständig auf Compose basierenden Architektur migrieren.
Die erste Funktion in diesem neuen Artefakt ist eine content
-Erweiterungsmethode für Fragment
, mit der die Verwendung von Compose für die Benutzeroberfläche eines einzelnen Fragments vereinfacht wird. Dazu wird eine ComposeView
für Sie erstellt und die richtige ViewCompositionStrategy
festgelegt. (561cb7, b/258046948)
class ExampleFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
) = content {
// Write your @Composable content here
val viewModel: ExampleViewModel = viewModel()
// or extract it into a separate, testable method
ExampleComposable(viewModel)
}
}
Neue Funktionen
FragmentManager.OnBackStackChangedListener()
bietet jetzt dieonBackStackChangeProgressed()
undonBackStackChangeCancelled()
zum Empfang von Ereignissen für den prognostizierten Rücklauffortschritt bzw. für abgebrochene Ereignisse. (214b87)
Bekanntes Problem
- Wenn Sie die Unterstützung für die Vorhersage der Rückwärtsnavigation von Fragmenten für
Animator
oder die AndroidX-Übergangsfunktion verwenden, werfen Fragmente eineNullPointerException
vonhandleOnBackProgressed
, wenn noch keineFragmentManager.OnBackStackChangedListener
überaddOnBackStackChangedListener
hinzugefügt wurde. Wenn Sie einen Listener manuell hinzufügen, können Sie den Absturz umgehen. In der nächsten Version von Fragments wird es eine entsprechende Korrektur geben.
Version 1.7.0-alpha08
10. Januar 2024
androidx.fragment:fragment-*:1.7.0-alpha08
wird veröffentlicht. Version 1.7.0-alpha08 enthält diese Commits.
Aufräumen
- Die Problemumgehung für die Übergangsbibliothek wurde entfernt, da das Problem in Transition
1.5.0-alpha06
behoben wurde. (I04356)
Version 1.7.0-alpha07
29. November 2023
androidx.fragment:fragment-*:1.7.0-alpha07
wird veröffentlicht. Version 1.7.0-alpha07 enthält diese Commits.
Fehlerkorrekturen
- Es wurde ein
NullPointerException
behoben, das durch das Festlegen eines Übergangs für ein freigegebenes Element und das Fehlen eines „enter/exitTransition“ verursacht wurde. (I8472b) - Über Fragment
1.6.2
: Wenn das Fragment einesFragmentContainerView
maximiert wird, sind seine Status wieFragmentManager
, Host und id jetzt imonInflate
-Callback zugänglich. (I1e44c, b/307427423) - Fragment
1.6.2
: Wenn Sie mitclearBackStack
mehrere Fragmente entfernen, werden jetzt auch dieViewModel
-Werte aller verschachtelten Fragmente gelöscht, wenn dieViewModels
-Werte des übergeordneten Fragments gelöscht werden. (I6d83c, b/296173018)
Version 1.7.0-alpha06
4. Oktober 2023
androidx.fragment:fragment-*:1.7.0-alpha06
wird veröffentlicht. Version 1.7.0-alpha06 enthält diese Commits.
Abhängigkeitsupdate
- Die Funktion „Fragmente“ wurde aktualisiert, sodass sie von der neuen
animateToStart
API abhängt, die in Übergang1.5.0-alpha04
hinzugefügt wurde.
Version 1.7.0-alpha05
20. September 2023
androidx.fragment:fragment-*:1.7.0-alpha05
wird veröffentlicht. Version 1.7.0-alpha05 enthält diese Commits.
Neue Funktionen
- Fragmente unterstützen jetzt die Vorhersage der Rückwärtsnavigation bei Verwendung von AndroidX-Übergängen. So können Sie mit der Zurück-Geste zum vorherigen Fragment mit Ihrer benutzerdefinierten AndroidX-Übergang springen, bevor Sie sich entscheiden, die Transaktion über die abgeschlossene Geste zu bestätigen oder abzubrechen. Sie müssen die Version Transition
1.5.0-alpha03
verwenden, um diese Funktion zu aktivieren. (Ib49b4, b/285175724)
Bekannte Probleme
- Derzeit gibt es ein Problem, bei dem der Übergang nicht ausgeführt wird, wenn Sie eine Wischgeste zum Zurückgehen mit einem Übergang einmal abbrechen und die Wischgeste zum Zurückgehen dann noch einmal ausführen. Dies führt zu einem leeren Bildschirm. Das kann an einem Problem in der Übergangsbibliothek liegen. (b/300157785). Wenn dieses Problem auftritt, melden Sie es bitte bei Fragment und fügen Sie ein Beispielprojekt hinzu, in dem es reproduziert werden kann. Sie können die Vorhersagefunktion für die Rückwärtsnavigation deaktivieren, indem Sie
FragmentManager.enabledPredictiveBack(false)
in denonCreate()
Ihrer Aktivitäten eingeben.
Version 1.7.0-alpha04
6. September 2023
androidx.fragment:fragment-*:1.7.0-alpha04
wird veröffentlicht. Version 1.7.0-alpha04 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem beim Abbrechen einer vorrausschauenden Zurück-Geste Fragmente nicht den richtigen Lebenszyklusstatus erreichten. (I7cffe, b/297379023)
- Ein Regressionsfehler wurde behoben, durch den Animationen mit Übergängen ausgeführt werden konnten. (I59f36)
- Ein Problem wurde behoben, durch das bei der Verwendung der Funktion „Vorherige Seite“ mit Fragmenten ein Absturz verursacht wurde, wenn versucht wurde, zweimal hintereinander zum vorletzten Fragment im Rückstapel zurückzukehren. (Ifa1a4)
Version 1.7.0-alpha03
23. August 2023
androidx.fragment:fragment-*:1.7.0-alpha03
wird veröffentlicht. Version 1.7.0-alpha03 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem mit Fragmenten bei der Verwendung der Vorhersagefunktion für die Schaltfläche „Zurück“ wurde behoben. Dieses Problem führte dazu, dass das erste Fragment im Rückstapel des Fragmentmanagers übersprungen und die Aktivität beendet wurde, wenn die Schaltfläche „Zurück“ über die Navigation mit drei Schaltflächen oder die Vorhersagefunktion für die Schaltfläche „Zurück“ verwendet wurde. (I0664b, b/295231788)
Version 1.7.0-alpha02
9. August 2023
androidx.fragment:fragment-*:1.7.0-alpha02
wird veröffentlicht. Version 1.7.0-alpha02 enthält diese Commits.
Fehlerkorrekturen
- Wenn Sie Fragmente mit vorausschauenden Zurück-Gesten ab API 34 verwenden und ein Übergangssystem verwenden, das keine Suche (
Animations
,Transitions
) oder gar keine Übergänge unterstützt, wartet Fragments jetzt, bis die Geste abgeschlossen ist, bevor die Zurück-Aktion ausgeführt wird. (I8100c)
Version 1.7.0-alpha01
7. Juni 2023
androidx.fragment:fragment-*:1.7.0-alpha01
wird veröffentlicht. Diese Version wird in einem internen Branch entwickelt.
Neue Funktionen
- Fragmente unterstützen jetzt die Vorhersage der In-App-Navigation bei Verwendung von
Animator
. So können Sie mit der Zurück-Geste das vorherige Fragment mit Ihrem benutzerdefinierten Animator aufrufen, bevor Sie entscheiden, ob Sie die Transaktion über die abgeschlossene Geste bestätigen oder abbrechen möchten. Sie können dieses neue Verhalten auch deaktivieren, indem Sie die experimentelle FunktionenablePredictiveBack()
verwenden undfalse
übergeben.
Version 1.6
Version 1.6.2
1. November 2023
androidx.fragment:fragment-*:1.6.2
wird veröffentlicht. Version 1.6.2 enthält diese Commits.
Fehlerkorrekturen
- Wenn das Fragment einer
FragmentContainerView
maximiert wird, sind ihre Status wieFragmentManager
, Host und id jetzt imonInflate
-Callback verfügbar. (I1e44c, b/307427423) - Wenn Sie mit
clearBackStack
mehrere Fragmente entfernen, wird jetzt auch dasViewModel
des verschachtelten Fragments gelöscht, wenn dasViewModels
des übergeordneten Fragments gelöscht wird. (I6d83c, b/296173018)
Version 1.6.1
26. Juli 2023
androidx.fragment:fragment-*:1.6.1
wird veröffentlicht. Version 1.6.1 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem der gespeicherte Status, der gespeichert wurde, als die Aktivität angehalten, aber nicht zerstört wurde, auch dann fälschlicherweise im Cache gespeichert wurde, wenn die Fragmentinstanz wieder in den Status
RESUMED
versetzt wurde. Dadurch wird der im Cache gespeicherte Status wiederverwendet, wenn sich diese Fragmentinstanz im Backstack befindet, wenn Sie die API für mehrere Backstacks verwenden, um dieses Fragment zu speichern und wiederherzustellen. (I71288, b/246289075)
Abhängigkeitsupdate
- Das Fragment hängt jetzt von Activity 1.7.2 ab. Dadurch wird ein Problem behoben, bei dem Kotlin-Nutzer
ComponentDialog
nicht ohne explizite Abhängigkeit von Activity erweitern konnten. (b/287509323)
Version 1.6.0
7. Juni 2023
androidx.fragment:fragment-*:1.6.0
wird veröffentlicht. Version 1.6.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.5.0
- Der gespeicherte Status von
Fragment
s wurde vollständig in den Status der privaten Bibliothek (benutzerdefinierteParcelable
-Klassen) und den vom Entwickler bereitgestellten Status aufgeteilt. Dieser wird jetzt immer in einemBundle
gespeichert, über das genau ermittelt werden kann, woher der Status eines Fragments stammt. - Die
FragmentManager.OnBackStackChangedListener
-Schnittstelle wurde um zwei zusätzliche Rückrufe vononBackStackChangeStarted
undonBackStackChangeCommitted
erweitert, die mit jederFragment
aufgerufen werden, kurz bevor sie dem Fragment-Backstack hinzugefügt oder daraus entfernt werden bzw. kurz nach dem Commit der Transaktion. FragmentStrictMode
wurde eine neueWrongNestedHierarchyViolation
hinzugefügt, die erkennt, wenn ein untergeordnetes Fragment in der Ansichtshierarchie des übergeordneten Elements verschachtelt, aber nicht derchildFragmentManager
des übergeordneten Elements hinzugefügt wurde.- Die
Fragment
- undFragmentManager
-APIs, die einenIntent
- oderIntentSender
-Wert annehmen, sind jetzt korrekt mit@NonNull
annotiert, um das Übergeben eines Nullwerts zu verhindern. Ein Nullwert würde immer sofort zum Absturz der jeweiligen Android-Framework-APIs führen, die von diesen Methoden aufgerufen werden. DialogFragment
bietet jetzt über dierequireComponentDialog()
API Zugriff auf die zugrunde liegendenComponentDialog
.- Das Fragment hängt jetzt vom Lifecycle
2.6.1
ab. - Das Fragment hängt jetzt von SavedState
1.2.1
ab. - Das Fragment hängt jetzt von ProfileInstaller
1.3.0
ab. Das
fragment-testing-manifest
-Artefakt trennt die Manifesteinträge vom Rest der Komponenten für den Fragmenttest. Das bedeutet, dass Sie Folgendes tun können:debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z") androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")
Dadurch werden Konflikte aufgrund von Versionsabweichungen zwischen
fragment-testing
undandroidx.test
vermieden.
Version 1.6.0-rc01
10. Mai 2023
androidx.fragment:fragment-*:1.6.0-rc01
wird veröffentlicht. Version 1.6.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Es wurde ein Problem behoben, durch das
ActivityResult
mit dem falschen Anfragecode gesendet wurden, wenn mehrerestartActivityForResult
-Anfragen nacheinander gesendet wurden. (If0b9d, b/249519359) - Ein Problem wurde behoben, bei dem die
onBackStackChangeListener
-Callbacks für Transaktionen gesendet wurden, die den Backstack nicht tatsächlich geändert haben, wenn sie mit Transaktionen vermischt wurden, die dies tun. (I0eb5c, b/279306628)
Version 1.6.0-beta01
19. April 2023
androidx.fragment:fragment-*:1.6.0-beta01
wird veröffentlicht. Version 1.6.0-beta01 enthält diese Commits.
Fehlerkorrekturen
- Wenn Sie
postponeEnterTransition
mit einem Zeitlimit verwenden und das verschobene Fragment dann ersetzen, wird es nicht mehr geleaked. (I2ec7d, b/276375110) - Mit den neuen
onBackStackChangeStarted
- undonBackStackChangeCommitted
-Callbacks wird ein Fragment jetzt nur noch einmal gesendet, auch wenn mehrere Transaktionen dasselbe Fragment enthalten. (Ic6b69)
Version 1.6.0-alpha09
5. April 2023
androidx.fragment:fragment-*:1.6.0-alpha09
wird veröffentlicht. Version 1.6.0-alpha09 enthält diese Commits.
API-Änderungen
DialogFragment
bietet jetzt über dierequireComponentDialog()
API Zugriff auf die zugrunde liegendenComponentDialog
. (I022e3, b/234274777)- Die Fragment-APIs
commitNow()
,executePendingTransactions()
undpopBackStackImmediate()
wurden mit@MainThread
annotiert. Das bedeutet, dass jetzt alle Build-Fehler geworfen werden, wenn sie nicht vom Hauptthread aufgerufen werden, anstatt bei Laufzeitfehlern zu warten. (Ic9665, b/236538905)
Fehlerkorrekturen
- Es wurde ein Fehler in
FragmentManager
behoben, durch den das Speichern und Wiederherstellen im selben Frame zu einem Absturz führen konnte. (Ib36af, b/246519668) OnBackStackChangedListener
-,onBackStackChangeStarted
- undonBackStackChangeCommitted
-Callbacks werden jetzt nur ausgeführt, wenn sich derFragmentManager
-Zurückstapel ändert. (I66055, b/274788957)
Version 1.6.0-alpha08
22. März 2023
androidx.fragment:fragment-*:1.6.0-alpha08
wird veröffentlicht. Version 1.6.0-alpha08 enthält diese Commits.
Verhaltensänderung
- Der Zeitpunkt des
OnBackStackChangedListener.onBackStackChangeCommited
-Callbacks wurde angepasst, damit er vor Fragmentvorgängen ausgeführt wird. So wird sichergestellt, dass dem Rückruf niemals ein nicht verbundenes Fragment übergeben wird. (I66a76, b/273568280)
Fehlerkorrekturen
- Fragment
1.5.6
: Es wurde ein Problem behoben, durch das der Aufruf vonclearFragmentResultListener
in einersetFragmentResultListener
nicht funktionierte, wenn dieLifecycle
bereitsSTARTED
war und ein Ergebnis bereits verfügbar war. (If7458)
Abhängigkeitsupdates
- Das Fragment hängt jetzt vom Lifecycle
2.6.1
ab. (586fe7) - Das Fragment hängt jetzt von SavedState
1.2.1
ab. (078e4e) - Das Fragment hängt jetzt von ProfileInstaller
1.3.0
ab. (3fc05b)
Version 1.6.0-alpha07
8. März 2023
androidx.fragment:fragment-*:1.6.0-alpha07
wird veröffentlicht. Version 1.6.0-alpha07 enthält diese Commits.
Fehlerkorrekturen
- Fragment
1.5.6
: Es wurde ein Problem behoben, durch das das Menü der Aktivität ungültig wurde, wenn ein Fragment entfernt wurde, unabhängig davon, ob es Menüpunkte hinzugefügt hatte oder nicht. (50f098, b/244336571)
Version 1.6.0-alpha06
22. Februar 2023
androidx.fragment:fragment-*:1.6.0-alpha06
wird veröffentlicht. Version 1.6.0-alpha06 enthält diese Commits.
Verhaltensänderung
- Der neue
onBackStackChangedStarted
-Callback aufonBackStackChangedListener
vonFragmentManager
wird jetzt ausgeführt, bevor sich Fragmente in ihre Zielstatus bewegen. (I34726)
Version 1.6.0-alpha05
8. Februar 2023
androidx.fragment:fragment-*:1.6.0-alpha05
wird veröffentlicht. Version 1.6.0-alpha05 enthält diese Commits.
Neue Funktionen
- Die
FragmentManager.OnBackStackChagnedListener
-Benutzeroberfläche bietet jetzt zwei zusätzliche Rückruffunktionen,onBackStackChangeStarted
undonBackStackChangeCommitted
, die zusätzliche Informationen und Steuerelemente bei Änderungen des Backstacks in derFragmentManager
ermöglichen. (Ib7ce5, b/238686802)
API-Änderungen
- Die
Fragment
- undFragmentManager
-APIs, die einIntent
oderIntentSender
annehmen, sind jetzt korrekt mit@NonNull
annotiert, um das Übergeben eines Nullwerts zu verhindern. Ein Nullwert würde immer sofort zum Absturz der jeweiligen Android-Framework-APIs führen, die von diesen Methoden aufgerufen werden. (I06fd4)
Version 1.6.0-alpha04
7. Dezember 2022
androidx.fragment:fragment-*:1.6.0-alpha04
wird veröffentlicht. Version 1.6.0-alpha04 enthält diese Commits.
Neue Funktionen
FragmentStrictMode
wurde eine neueWrongNestedHierarchyViolation
hinzugefügt, die erkennt, wenn ein untergeordnetes Fragment in der Ansichtshierarchie des übergeordneten Elements verschachtelt, aber nicht derchildFragmentManager
des übergeordneten Elements hinzugefügt wurde. (I72521, b/249299268)
Verhaltensänderungen
- Fragmente werden jetzt in ihren
SavedStateRegistry
-Zustand voronAttach()
wiederhergestellt, damit sie über alle aufsteigenden Lebenszyklusmethoden verfügbar sind. (I1e2b1)
API-Änderungen
- Das
fragment-testing-manifest
-Artefakt trennt die Manifesteinträge vom Rest der Komponenten für den Fragmenttest. Das bedeutet, dass Sie Folgendes tun können:
debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z")
androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")
Dadurch werden Konflikte aufgrund von Versionsabweichungen zwischen fragment-testing
und androidx.test
vermieden.(I8e534, b/128612536)
Fehlerkorrekturen
- Fragment
1.5.5
: In Fragmenten wird der StatusViewModel
nicht mehr fälschlicherweise als Teil des gespeicherten Status der Ansichtsregistrierung gespeichert. (I10d2b, b/253546214)
Version 1.6.0-alpha03
5. Oktober 2022
androidx.fragment:fragment:1.6.0-alpha03
, androidx.fragment:fragment-ktx:1.6.0-alpha03
und androidx.fragment:fragment-testing:1.6.0-alpha03
werden losgelassen. Version 1.6.0-alpha03 enthält diese Commits.
API-Änderungen
- Bei Klassen, die
DialogFragment
erweitern, muss in ihrenonDismiss()
-Überschreibungen jetzt super aufgerufen werden. (I14798, b/238928865)
Fehlerkorrekturen
- Wir haben Fehler behoben, die durch die Integration der neuen Rückrufschnittstellen für Anbieter (
OnConfigurationChangedProvider
,OnMultiWindowModeChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
) verursacht wurden. So erhalten Fragmente jetzt immer die richtigen Rückrufe. (I9b380,I34581, (I8dfe6, b/242570955),If9d6b,Id0096,I690b3,I2cba2)
Version 1.6.0-alpha02
24. August 2022
androidx.fragment:fragment:1.6.0-alpha02
, androidx.fragment:fragment-ktx:1.6.0-alpha02
und androidx.fragment:fragment-testing:1.6.0-alpha02
werden losgelassen. Version 1.6.0-alpha02 enthält diese Commits.
Fehlerkorrekturen
- Fragment
1.5.2
: Es wurde ein Problem behoben, bei dem die gleichzeitige Ausführung einerpopBackStack()
- und einerreplace()
-Transaktion dazu führen konnte, dass in den austretenden Fragmenten die falscheAnimation
/Animator
ausgeführt wurde. (Ib1c07, b/214835303)
Version 1.6.0-alpha01
27. Juli 2022
androidx.fragment:fragment:1.6.0-alpha01
, androidx.fragment:fragment-ktx:1.6.0-alpha01
und androidx.fragment:fragment-testing:1.6.0-alpha01
werden losgelassen. Version 1.6.0-alpha01 enthält diese Commits.
Verhaltensänderungen
- Der gespeicherte Status von
Fragment
s wurde vollständig in den Status der privaten Bibliothek (benutzerdefinierteParcelable
-Klassen) und den vom Entwickler bereitgestellten Status aufgeteilt. Dieser wird jetzt immer in einemBundle
gespeichert, über das genau ermittelt werden kann, woher der Status eines Fragments stammt. (b/207158202)
Fehlerkorrekturen
- Aus Fragment
1.5.1
: Behebung einer Regression imDialogFragmentCallbacksDetector
, bei der die Verwendung der mit AGP 7.4 gebündelten Lint-Version zu einem Absturz von Lint führte. (b/237567009)
Update der Abhängigkeiten
- Fragment
1.5.1
: Die Fragmentbibliothek hängt jetzt vom Lebenszyklus2.5.1
ab. (Id204c) - Fragment
1.5.1
: Die Fragmentbibliothek hängt jetzt von Aktivität1.5.1
ab. (I10f07)
Version 1.5
Version 1.5.7
19. April 2023
androidx.fragment:fragment:1.5.7
, androidx.fragment:fragment-ktx:1.5.7
und androidx.fragment:fragment-testing:1.5.7
werden losgelassen. Version 1.5.7 enthält diese Commits.
Fehlerkorrekturen
- Wenn Sie
postponeEnterTransition
mit einem Zeitlimit verwenden und das verschobene Fragment dann ersetzen, wird es nicht mehr geleaked. (I2ec7d, b/276375110)
Version 1.5.6
22. März 2023
androidx.fragment:fragment:1.5.6
, androidx.fragment:fragment-ktx:1.5.6
und androidx.fragment:fragment-testing:1.5.6
werden losgelassen. Version 1.5.6 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das das Menü der Aktivität ungültig wurde, wenn ein Fragment entfernt wurde, unabhängig davon, ob es Menüelemente hinzugefügt hatte oder nicht. (50f098, b/244336571)
- Ein Problem wurde behoben, durch das der Aufruf von
clearFragmentResultListener
in einersetFragmentResultListener
nicht funktionierte, wenn dieLifecycle
bereitsSTARTED
war und ein Ergebnis bereits verfügbar war. (If7458)
Version 1.5.5
7. Dezember 2022
androidx.fragment:fragment:1.5.5
, androidx.fragment:fragment-ktx:1.5.5
und androidx.fragment:fragment-testing:1.5.5
werden losgelassen. Version 1.5.5 enthält diese Commits.
Fehlerkorrekturen
- Der Status
ViewModel
wird in Fragmenten nicht mehr fälschlicherweise als Teil des gespeicherten Status der Ansichtsregistrierung gespeichert. (I10d2b, b/253546214)
Version 1.5.4
24. Oktober 2022
androidx.fragment:fragment:1.5.4
, androidx.fragment:fragment-ktx:1.5.4
und androidx.fragment:fragment-testing:1.5.4
werden losgelassen. Version 1.5.4 enthält diese Commits.
Fehlerkorrekturen
- Es wurde ein Fehler behoben, bei dem bei Verwendung einer benutzerdefinierten
FragmentController
mit einem Host, der keine Anbieter-Callback-Schnittstelle (OnConfigurationChangedProvider
,OnMultiWindowModeChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
) implementiert, und Aufrufen der veralteten Dispatch-Funktion kein Versand an untergeordnete Fragmente erfolgte. (I9b380)
Version 1.5.3
21. September 2022
androidx.fragment:fragment:1.5.3
, androidx.fragment:fragment-ktx:1.5.3
und androidx.fragment:fragment-testing:1.5.3
werden losgelassen. Version 1.5.3 enthält diese Commits.
Fehlerkorrekturen
- Ein Fehler wurde behoben, durch den Fragmente im Backstack
onMultiWindowModeChanged()
-,onPictureInPictureModeChanged()
-,onLowMemory()
- undonConfigurationChanged()
-Callbacks erhielten. (I34581, I8dfe6, b/242570955) - Verschachtelte untergeordnete Fragmente erhalten nicht mehr mehrere
onMultiWindowModeChanged()
-,onPictureInPictureModeChanged()
-,onLowMemory()
- oderonConfigurationChanged()
-Callbacks. (I690b3, Id0096, If9d6b, I2cba2)
Version 1.5.2
10. August 2022
androidx.fragment:fragment:1.5.2
, androidx.fragment:fragment-ktx:1.5.2
und androidx.fragment:fragment-testing:1.5.2
werden losgelassen. Version 1.5.2 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem beim gleichzeitigen Ausführen einer
popBackStack()
- und einerreplace()
-Transaktion in den austretenden Fragmenten möglicherweise die falscheAnimation
/Animator
ausgeführt wurde. (Ib1c07, b/214835303)
Version 1.5.1
27. Juli 2022
androidx.fragment:fragment:1.5.1
, androidx.fragment:fragment-ktx:1.5.1
und androidx.fragment:fragment-testing:1.5.1
werden losgelassen. Version 1.5.1 enthält diese Commits.
Fehlerkorrekturen
- Behebung einer Regression in der
DialogFragmentCallbacksDetector
, bei der die Verwendung der mit AGP 7.4 gebündelten Lint-Version zu einem Absturz von Lint führte. (b/237567009)
Update der Abhängigkeiten
- Die Fragmentbibliothek hängt jetzt vom Lifecycle
2.5.1
ab. (Id204c) - Die Fragmentbibliothek hängt jetzt von Aktivität
1.5.1
ab. (I10f07)
Version 1.5.0
29. Juni 2022
androidx.fragment:fragment:1.5.0
, androidx.fragment:fragment-ktx:1.5.0
und androidx.fragment:fragment-testing:1.5.0
werden losgelassen. Version 1.5.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.4.0
- Integration von CreationExtras:
Fragment
kann jetzt über dieCreationExtras
von Lifecycle2.5.0
einen zustandslosenViewModelProvider.Factory
bereitstellen. - Integration von Komponentendialogen:
DialogFragment
verwendet jetztComponentDialog
über Aktivität1.5.0
als Standarddialog, der vononCreateDialog()
zurückgegeben wird. - Neugestaltung des gespeicherten Instanzstatus: Bei Fragmenten wird die Art und Weise geändert, wie der Instanzstatus gespeichert wird. So soll klar erkennbar sein, welcher Status im Fragment gespeichert wurde und woher er stammt. Zu den aktuellen Änderungen gehören:
FragmentManager
speichert den gespeicherten Instanzstatus jetzt in einemBundle
anstelle direkt in einer benutzerdefiniertenParcelable
.- Ergebnisse, die über die
Fragment Result APIs
festgelegt wurden und noch nicht gesendet wurden, werden jetzt getrennt vom internen Status derFragmentManager
gespeichert. - Der Status, der mit jedem einzelnen Fragment verknüpft ist, wird jetzt getrennt vom internen Status der
FragmentManager
gespeichert. So kannst du den gespeicherten Status eines einzelnen Fragments mit den eindeutigen IDs in denFragment
-Debug-Logs in Beziehung setzen.
Weitere Änderungen
- Mit
FragmentStrictMode
können private Drittanbieter-Fragmente jetzt bestimmte Strafen für Verstöße umgehen, indem sieallowViolation()
mit dem Klassennamen verwenden. - Die Fragment-APIs zum Bereitstellen eines Menüs für die
ActionBar
Ihrer Aktivität wurden eingestellt. Die in Aktivität1.4.0
hinzugefügten APIsMenuHost
undMenuProvider
bieten eine testbare, lebenszyklusbewusste API-Oberfläche, die von Fragmenten verwendet werden sollte.
Version 1.5.0-rc01
11. Mai 2022
androidx.fragment:fragment:1.5.0-rc01
, androidx.fragment:fragment-ktx:1.5.0-rc01
und androidx.fragment:fragment-testing:1.5.0-rc01
werden losgelassen. Version 1.5.0-rc01 enthält diese Commits.
Refactoring des gespeicherten Instanzstatus
- Der dem einzelnen Fragment zugeordnete Status wird jetzt getrennt vom internen Status der
FragmentManager
gespeichert. So können Sie den gespeicherten Status eines einzelnen Fragments mit den eindeutigen IDs in den Fragment-Debug-Logs in Beziehung setzen. (a153e0, b/207158202)
Version 1.5.0-beta01
20. April 2022
androidx.fragment:fragment:1.5.0-beta01
, androidx.fragment:fragment-ktx:1.5.0-beta01
und androidx.fragment:fragment-testing:1.5.0-beta01
werden losgelassen. Version 1.5.0-beta01 enthält diese Commits.
API-Änderungen
DialogFragment
hat eine neuedismissNow
-Methode hinzugefügt, diecommitNow
zur Parität mit dershowNow
-Funktion verwendet. Dadurch wird dasDialog
nicht sofort geschlossen, sondern nur der Status desFragmentManager
synchron aktualisiert. (I15c36, b/72644830)
Refactoring des gespeicherten Instanzstatus
FragmentManager
speichert den gespeicherten Instanzstatus jetzt in einemBundle
anstelle direkt in einer benutzerdefiniertenParcelable
. Dies ist der erste Schritt, um mehr Transparenz darüber zu schaffen, was tatsächlich von Fragmenten gespeichert wird. (I93807, b/207158202)- Ergebnisse, die über die Fragment Result APIs festgelegt wurden und noch nicht gesendet wurden, werden jetzt getrennt vom internen Status der
FragmentManager
gespeichert. So können Sie besser nachvollziehen, welche Ergebnisse im Rahmen des gespeicherten Instanzstatus gespeichert werden. (I6ea12, b/207158202)
Version 1.5.0-alpha05
6. April 2022
androidx.fragment:fragment:1.5.0-alpha05
, androidx.fragment:fragment-ktx:1.5.0-alpha05
und androidx.fragment:fragment-testing:1.5.0-alpha05
werden losgelassen. Version 1.5.0-alpha05 enthält diese Commits.
API-Änderungen
setHasOptionsMenu()
vonFragment
wurde eingestellt. Zum Verwalten von Menüs und Menüpunkten sollten stattdessen die neuen Menü-APIs verwendet werden, wie in den Release-Notes zu Fragment1.5.0-alpha04
beschrieben. (I7b4b4, b/226438239)
Version 1.5.0-alpha04
23. März 2022
androidx.fragment:fragment:1.5.0-alpha04
, androidx.fragment:fragment-ktx:1.5.0-alpha04
und androidx.fragment:fragment-testing:1.5.0-alpha04
werden losgelassen. Version 1.5.0-alpha04 enthält diese Commits.
API-Änderungen
- Die Fragment-APIs zum Bereitstellen eines Menüs für die
ActionBar
Ihrer Aktivität wurden eingestellt, da sie Ihr Fragment eng mit Ihrer Aktivität verknüpfen und nicht einzeln getestet werden können. Die in Aktivität1.4.0-alpha01
hinzugefügten APIsMenuHost
undMenuProvider
bieten eine testbare, lebenszyklusbewusste API-Oberfläche, die von Fragmenten verwendet werden sollte. (I50a59, I20758)
Fehlerkorrekturen
SavedStateViewFactory
unterstützt jetzt die Verwendung vonCreationExtras
, auch wenn es mit einerSavedStateRegistryOwner
initialisiert wurde. Wenn Extras angegeben werden, werden die initialisierten Argumente ignoriert. (I6c43b, b/224844583)
Version 1.5.0-alpha03
23. Februar 2022
androidx.fragment:fragment:1.5.0-alpha03
, androidx.fragment:fragment-ktx:1.5.0-alpha03
und androidx.fragment:fragment-testing:1.5.0-alpha03
werden losgelassen. Version 1.5.0-alpha03 enthält diese Commits.
API-Änderungen
- Sie können
CreationExtras
jetzt an die Funktionenby viewModels()
undby activityViewModels()
übergeben. (Ibefe7, b/217601110)
Verhaltensänderungen
DialogFragment
verwendet jetztComponentDialog
als Standarddialogfeld, das vononCreateDialog()
zurückgegeben wird. (If3784, b/217618170)
Version 1.5.0-alpha02
9. Februar 2022
androidx.fragment:fragment:1.5.0-alpha02
, androidx.fragment:fragment-ktx:1.5.0-alpha02
und androidx.fragment:fragment-testing:1.5.0-alpha02
werden losgelassen. Version 1.5.0-alpha02 enthält diese Commits.
Neue Funktionen
- Mit
FragmentStrictMode
können private Drittanbieter-Fragmente jetzt bestimmte Strafen für Verstöße umgehen, indem sieallowViolation()
mit dem Klassennamen verwenden. (I8f678)
Version 1.5.0-alpha01
26. Januar 2022
androidx.fragment:fragment:1.5.0-alpha01
, androidx.fragment:fragment-ktx:1.5.0-alpha01
und androidx.fragment:fragment-testing:1.5.0-alpha01
werden losgelassen. Version 1.5.0-alpha01 enthält diese Commits.
Neue Funktionen
Fragment
kann jetzt mit ViewModel CreationExtras verwendet werden, die im Rahmen von Lifecycle2.5.0-alpha01
eingeführt wurden. (I3060b, b/207012585)
Fehlerkorrekturen
- Fragment
1.4.1
:FragmentContainerView
löst keine illegale Statusausnahme mehr aus, wenn aus XML generierte Ansichts-IDs negative Werte haben. (Ic185b, b/213086140) - Fragment
1.4.1
: Wenn du ein benutzerdefiniertesownerProducer
-Lambda mit derby viewModels()
-Lazily-Funktion verwendest, wird jetzt diedefaultViewModelProviderFactory
dieses Eigentümers verwendet, wenn kein benutzerdefiniertesViewModelProvider.Factory
angegeben ist, anstatt immer die Fabrik des Fragments zu verwenden. (I56170, b/214106513) - Ein Absturz beim erstmaligen Zugriff auf eine
ViewModel
über einenregisterForActivityResult()
-Callback einerFragment
wurde behoben. (Iea2b3)
Version 1.4
Version 1.4.1
26. Januar 2022
androidx.fragment:fragment:1.4.1
, androidx.fragment:fragment-ktx:1.4.1
und androidx.fragment:fragment-testing:1.4.1
werden losgelassen. Version 1.4.1 enthält diese Commits.
Fehlerkorrekturen
FragmentContainerView
löst keine Ausnahme für einen ungültigen Status mehr aus, wenn aus XML generierte Ansichts-IDs negative Werte haben. (Ic185b, b/213086140)- Wenn du ein benutzerdefiniertes
ownerProducer
-Lambda mit der Lazy-Funktionby viewModels()
verwendest, wird jetzt diedefaultViewModelProviderFactory
dieses Eigentümers verwendet, wenn kein benutzerdefiniertesViewModelProvider.Factory
angegeben ist, anstatt immer die Fabrik des Fragments zu verwenden. (I56170, b/214106513)
Version 1.4.0
17. November 2021
androidx.fragment:fragment:1.4.0
, androidx.fragment:fragment-ktx:1.4.0
und androidx.fragment:fragment-testing:1.4.0
werden losgelassen. Version 1.4.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.3.0
- Die
FragmentStrictMode
APIs bieten Laufzeitprüfungen, mit denen Sie prüfen können, ob Ihre App oder die von Ihnen verwendeten Bibliotheken keine veralteten Fragment-APIs aufrufen. Wenn ein Verstoß erkannt wird, können Sie eine Protokollnachricht drucken, Ihren eigenen benutzerdefinierten Listener auslösen oder Ihre App zum Absturz bringen. DieFragmentStrictMode.Policy
, die steuert, welche Prüfungen aktiviert sind und welche „Strafen“ ausgelöst werden, kann über die neue MethodesetStrictModePolicy()
auf einemFragmentManager
festgelegt werden. Diese Richtlinie gilt fürFragmentManager
und mittelbar für alle untergeordneten Fragmentmanager, die keine eigene Richtlinie festlegen. Weitere Informationen finden Sie unter StrictMode für Fragmente. FragmentContainerView
bietet jetzt die MethodegetFragment()
, die das Fragment zurückgibt, das dem Container zuletzt hinzugefügt wurde. Dabei wird dieselbe Logik wie beifindFragmentById()
mit der ID derFragmentContainerView
verwendet, aber der Aufruf kann verschachtelt werden.val navController = binding.container.getFragment<NavHostFragment>().navController
FragmentScenario
implementiert jetztCloseable
, sodass Sie es mit deruse
-Methode oder try-with-resources von Kotlin verwenden können.Das Attribut
FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}
wurde hinzugefügt, um anzugeben, ob die Standardanimation für den Aktivitätsübergang aus Ihrem Design im Fragmentübergang aktiviert werden soll.Die experimentelle API von
FragmentManager.enableNewStateManager(boolean)
wurde entfernt und der neue Statusmanager ist jetzt die einzige verfügbare Option.
Mehrere Backstacks
Der FragmentManager
verwaltet einen Backstack aus Fragmenttransaktionen, die addToBackStack()
verwendet haben. So können Sie diese Transaktionen aufrufen und zum vorherigen Status zurückkehren. Mit den Mechanismen zum Speichern des Status mit Fragmenten können Sie den Status Ihrer Fragmente entsprechend wiederherstellen.
Mit dieser Version werden diese Mechanismen durch drei neue FragmentManager
APIs erweitert: saveBackStack(String name)
, restoreBackStack(String name)
und clearBackStack(String name)
. Diese APIs verwenden dieselbe name
wie addToBackStack()
, um den Status der FragmentTransaction
und den Status jedes Fragments zu speichern, das in diesen Transaktionen hinzugefügt wurde. So können Sie diese Transaktionen und ihre Fragmente später mit dem ursprünglichen Status wiederherstellen. So können Sie effektiv zwischen mehreren Backstacks wechseln, indem Sie den aktuellen Backstack speichern und einen gespeicherten Backstack wiederherstellen.
saveBackStack()
funktioniert ähnlich wie popBackStack()
, da es asynchron ist und dazu führt, dass alle Fragmenttransaktionen zurück zu diesem bestimmten Namen rückgängig gemacht („popped“) und alle hinzugefügten Fragmente zerstört und entfernt werden. Es unterscheidet sich jedoch in einigen wichtigen Punkten:
saveBackStack()
ist immer inklusiv.- Im Gegensatz zu
popBackStack()
, bei dem alle Transaktionen im Backstack an die Oberfläche gebracht werden, wenn der angegebene Name nicht im Backstack gefunden wird oder ein Nullname angegeben wird, passiert beisaveBackStack()
nichts, wenn Sie zuvor keine Fragmenttransaktion mitaddToBackStack()
mit genau diesem nicht nullwertigen Namen verbindlich gemacht haben. - Der Status aller über diese Transaktionen hinzugefügten Fragmente wird gespeichert. Das bedeutet, dass der Ansichtsstatus jedes Fragments gespeichert,
onSaveInstanceState()
jedes Fragments aufgerufen und dieser Status wiederhergestellt wird. Alle mit diesen Fragmenten verknüpftenViewModel
-Instanzen werden beibehalten undonCleared()
wird nicht aufgerufen.
Die Fragmenttransaktionen, die mit saveBackStack()
verwendet werden können, müssen bestimmte Kriterien erfüllen:
- Für jede Fragmenttransaktion muss
setReorderingAllowed(true)
verwendet werden, damit die Transaktionen als einzelner atomarer Vorgang wiederhergestellt werden können. - Die gespeicherten Transaktionen müssen in sich geschlossen sein, d.h., sie dürfen nicht explizit auf Fragmente außerhalb dieses Transaktionssatzes verweisen, damit sie jederzeit wiederhergestellt werden können, unabhängig davon, welche Änderungen in der Zwischenzeit am Backstack vorgenommen wurden.
- Kein gespeichertes Fragment darf ein in der Navigationsleiste gespeichertes Fragment sein oder ein solches Fragment in seinem übergeordneten Satz von untergeordneten Fragmenten enthalten, damit die
FragmentManager
nach dem Speichern des Backstacks keine Verweise auf gespeicherte Fragmente zurückgibt.
Ähnlich wie bei saveBackStack()
, restoreBackStack()
und clearBackStack()
, mit denen ein zuvor gespeicherter Rückstapel jeweils wiederhergestellt oder gelöscht wird, passiert bei diesen beiden Befehlen nichts, wenn Sie saveBackStack()
nicht zuvor mit demselben Namen aufgerufen haben.
Weitere Informationen finden Sie unter Mehrere Backstacks: Ein detaillierter Blick.
Version 1.4.0-rc01
3. November 2021
androidx.fragment:fragment:1.4.0-rc01
wurde ohne Änderungen gegenüber Fragment 1.4.0-beta01 veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.
Version 1.4.0-beta01
27. Oktober 2021
androidx.fragment:fragment:1.4.0-beta01
, androidx.fragment:fragment-ktx:1.4.0-beta01
und androidx.fragment:fragment-testing:1.4.0-beta01
werden losgelassen. Version 1.4.0-beta01 enthält diese Commits.
Fehlerkorrekturen
- Übergeordnete Fragmente leiten
onHiddenChanged()
jetzt durch die gesamte Hierarchie weiter, bevor sie ihren eigenen Rückruf starten. (Iedc20, b/77504618) - Die Tastatur wird jetzt automatisch geschlossen, wenn Sie von einem Fragment mit einer geöffneten Tastatur zu einem Fragment mit einer Recycler-Ansicht wechseln. (I8b842, b/196852211)
DialogFragment
verwendet jetztsetReorderingAllowed(true)
für alle Transaktionen, die beim Aufrufen vonshow()
,showNow()
oderdismiss()
erstellt werden. (Ie2c14)- Die extrem lange Lint-Warnung von
DetachAndAttachFragmentInSameFragmentTransaction
wurde aufDetachAndAttachSameFragment
gekürzt. (e9eca3)
Version 1.4.0-alpha10
29. September 2021
androidx.fragment:fragment:1.4.0-alpha10
, androidx.fragment:fragment-ktx:1.4.0-alpha10
und androidx.fragment:fragment-testing:1.4.0-alpha10
werden losgelassen. Version 1.4.0-alpha10 enthält diese Commits.
Fussel
- Die
DetachAndAttachFragmentInSameFragmentTransaction
-Lint-Warnung wurde hinzugefügt, um zu erkennen, wenn sowohldetach()
als auchattach()
auf dieselbeFragment
in derselbenFragmentTransaction
aufgerufen werden. Da sich diese komplementären Vorgänge in derselben Transaktion gegenseitig aufheben, müssen sie in separate Transaktionen aufgeteilt werden, damit etwas passiert. (aosp/1832956, b/200867930) - Der
FragmentAddMenuProvider
-Lint-Fehler zur Korrektur der Verwendung des Fragment-Lebenszyklus im Fragment-Ansichts-Lebenszyklus bei Verwendung deraddMenuProvider
API vonMenuHost
wurde hinzugefügt. (aosp/1830457, b/200326272)
Aktualisierungen der Dokumentation
- Die Mitteilung zur Einstellung von APIs, die jetzt von den Activity Result APIs verarbeitet werden, nämlich
startActivityForResult
,startIntentSenderForResult
,onActivityResult
,requestPermissions
undonRequestPermissionsResult
, wurde um weitere Details ergänzt. (cce80f) - Die Mitteilung zur Einstellung von
onActivityCreated()
fürFragment
undDialogFragment
wurde um weitere Details ergänzt. (224db4)
Version 1.4.0-alpha09
15. September 2021
androidx.fragment:fragment:1.4.0-alpha09
, androidx.fragment:fragment-ktx:1.4.0-alpha09
und androidx.fragment:fragment-testing:1.4.0-alpha09
werden losgelassen. Version 1.4.0-alpha09 enthält diese Commits.
Neue Funktionen
- Sie können jetzt
clearBackStack(name)
aufrufen, um alle zuvor mitsaveBackStack(name)
gespeicherten Status zu löschen. (I70cd7)
API-Änderungen
- Die Klasse
FragmentContainerView
wurde in Kotlin neu geschrieben, damit die FunktiongetFragment
die Nullbarkeit korrekt berücksichtigt. (If694a, b/189629145) - FragmentStrictMode ist jetzt in Kotlin geschrieben (I11767, b/199183506)
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem der Status eines Fragments, das mit
setReorderingAllowed(true)
hinzugefügt und dann sofort entfernt wurde, bevor ausstehende Transaktionen ausgeführt wurden, nicht ordnungsgemäß bereinigt wurde. (I8ccb8)
Version 1.4.0-alpha08
1. September 2021
androidx.fragment:fragment:1.4.0-alpha08
, androidx.fragment:fragment-ktx:1.4.0-alpha08
und androidx.fragment:fragment-testing:1.4.0-alpha08
werden losgelassen. Version 1.4.0-alpha08 enthält diese Commits.
Fehlerkorrekturen
- Die
UseRequireInsteadOfGet
-Lint-Prüfung wurde verbessert, um redundante Klammern besser zu behandeln. (I2d865) - Die
UseGetLayoutInflater
-Lint-Prüfung wurde verbessert, um zusätzliche Grenzfälle zu behandeln. (Ie5423)
Version 1.4.0-alpha07
18. August 2021
androidx.fragment:fragment:1.4.0-alpha07
, androidx.fragment:fragment-ktx:1.4.0-alpha07
und androidx.fragment:fragment-testing:1.4.0-alpha07
werden ohne nennenswerte Änderungen veröffentlicht. Version 1.4.0-alpha07 enthält diese Commits.
Version 1.4.0-alpha06
4. August 2021
androidx.fragment:fragment:1.4.0-alpha06
, androidx.fragment:fragment-ktx:1.4.0-alpha06
und androidx.fragment:fragment-testing:1.4.0-alpha06
werden losgelassen. Version 1.4.0-alpha06 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem mit mehreren Rückstapeln wurde behoben, bei dem beim schnellen Wechseln zwischen Rückstapeln ein
IllegalStateException
angezeigt wurde, während eineFragmentTransaction
wiederhergestellt wurde, oder eine zweite Kopie eines Fragments angezeigt wurde. (I9039f) - Ein Problem wurde behoben, durch das
FragmentManager
eine Kopie des zuvor übersaveBackStack()
gespeicherten Status beibehielt, auch nachdem dieser Status wiederhergestellt wurde. (Ied212) - Die
dismissAllowingStateLoss()
-Methode vonDialogFragment
stürzt nicht mehr ab, wenn Sie sie nach dem Speichern des Status aufrufen, wenn Sie das DialogFragment speziell über dieshow(FragmentTransaction, String)
-Methode hinzufügen. (I84422)
Version 1.4.0-alpha05
21. Juli 2021
androidx.fragment:fragment:1.4.0-alpha05
, androidx.fragment:fragment-ktx:1.4.0-alpha05
und androidx.fragment:fragment-testing:1.4.0-alpha05
werden losgelassen. Version 1.4.0-alpha05 enthält diese Commits.
Fehlerkorrekturen
- Fragment
1.3.6
: Die Ansicht des Fragments wird jetzt richtig aufGONE
gesetzt, wennhide()
verwendet wird, während für die StammansichttransitionGroup=”true”
festgelegt ist. (aosp/1766655, b/193603427) - Aus Fragment
1.3.6
:FragmentActivity
löst jetzt immer den gespeicherten Status als ersten Vorgang in den Lebenszyklus-Callbacks auf, die er überschreibt. (I6db7a)
Update der Abhängigkeiten
- Von Fragment
1.3.6
: Fragmente sind jetzt von Aktivität1.2.4
(I3a66c) abhängig
Version 1.4.0-alpha04
30. Juni 2021
androidx.fragment:fragment:1.4.0-alpha04
, androidx.fragment:fragment-ktx:1.4.0-alpha04
und androidx.fragment:fragment-testing:1.4.0-alpha04
werden losgelassen. Version 1.4.0-alpha04 enthält diese Commits.
API-Änderungen
FragmentManager
verwendet jetztSavedStateRegistry
, um seinen Status zu speichern. Die MethodensaveAllState()
undrestoreSavedState()
wurden inFragmentController
ebenfalls eingestellt. Wenn duFragmentController
verwendest, um Fragmente außerhalb vonFragmentActivity
zu hosten, solltest duSavedStateRegistryOwner
in deinerFragmentHostCallbacks
implementieren. (Iba68e, b/188734238)
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem der Aufruf von
saveBackStack()
im Rahmen der Unterstützung mehrerer Backstacks fehlgeschlagen ist, wenn gleichzeitig einFragmentTransaction
ausgeführt wurde, für denreplace()
verwendet wurde. (I73137) - Behoben wurde ein
NullPointerException
, das nach dem manuellen Wiederherstellen eines gespeicherten Backstacks mit mehreren Transaktionen auftrat, wenn dierestoreBackStack()
API für die Unterstützung mehrerer Backstacks verwendet wurde. Außerdem wurde ein Problem behoben, bei demsetReorderingAllowed(true)
nicht für alle Transaktionen überprüft wurde. (I8c593) - Ein Problem wurde behoben, durch das
FragmentManager
fälschlicherweise den zuvor gespeicherten Status von Fragmenten wiederhergestellt hat, auch nachdem diese Fragmente aus derFragmentManager
entfernt wurden. Dadurch wurde der gespeicherte Status im Laufe der Zeit immer größer. (I1fb8e)
Version 1.4.0-alpha03
16. Juni 2021
androidx.fragment:fragment:1.4.0-alpha03
, androidx.fragment:fragment-ktx:1.4.0-alpha03
und androidx.fragment:fragment-testing:1.4.0-alpha03
werden losgelassen. Version 1.4.0-alpha03 enthält diese Commits.
Neue Funktionen
- Alle Fragment StrictMode-Klassen
Violation
wurden um detailliertere Fehlermeldungen ergänzt, in denen die Details des Verstoßes erläutert werden. (b/187871638)FragmentTagUsageViolation
enthält jetzt eine detailliertere Fehlermeldung, die den übergeordneten Container enthält, dem das Fragment hinzugefügt worden wäre. (Ic33a7)WrongFragmentContainerViolation
enthält jetzt eine detailliertere Fehlermeldung, die den Container enthält, dem das Fragment hinzugefügt wurde. (Ib55f8)- Die Anwendungsfallklassen für
TargetFragmentUsageViolation
enthalten jetzt detailliertere Fehlermeldungen, die das fragliche Fragment und alle anderen enthaltenen Informationen enthalten. (Icc6ac) - Die Klassen, die
RetainInstanceUsageViolation
erweitern, enthalten jetzt detailliertere Fehlermeldungen, die das Fragment enthalten, das den Verstoß verursacht. (I6bd55) FragmentReuseViolation
enthält jetzt eine detailliertere Fehlermeldung mit der vorherigen ID des Fragments. (I28ce2)SetUserVisibleHintViolation
enthält jetzt eine ausführlichere Fehlermeldung, die enthält, auf welchen Wert der für Nutzer sichtbare Hinweis festgelegt wurde. (Ib2d5f)
Verhaltensänderungen
- Die Einschränkung beim Aufrufen von
fitsSystemWindows
auf einemFragmentContainerView
wurde aufgehoben. Die App stürzt dadurch nicht mehr ab. (6b8ddd, b/190622202)
Fehlerkorrekturen
- Seit Fragment
1.3.5
: Behoben wurde eine Regression bei Übergängen mit freigegebenen Elementen, die durch aosp/1679887 in Fragment1.3.4
eingeführt wurde. In Fragmenten werden jetzt Übergangsgruppen korrekt verarbeitet (entweder direkt übertransitionGroup="true"
oder indirekt übertransitionName
oderbackground
). Außerdem werden für freigegebene Elemente keineIndexOutOfBoundsException
s mehr ausgegeben. (I16484, b/188679569, b/188969304) - Die
FragmentManager
stürzt nicht mehr ab, wenn Sie versuchen, ein entferntes Fragment auszublenden. (I573dd, b/183634730) - Die
OnCreateDialogIncorrectCallback
-Lint-Prüfung stürzt nicht mehr ab, wenn eine Variable der obersten Ebene ausgewertet wird. (0a9efa, b/189967522)
Version 1.4.0-alpha02
2. Juni 2021
androidx.fragment:fragment:1.4.0-alpha02
, androidx.fragment:fragment-ktx:1.4.0-alpha02
und androidx.fragment:fragment-testing:1.4.0-alpha02
werden losgelassen. Version 1.4.0-alpha02 enthält diese Commits.
Neue Funktionen
FragmentStrictMode
protokolliert jetzt immer Verstöße, wenn das Logging über dieFragmentManager
aktiviert ist, unabhängig von der aktuell verwendeten Richtlinie für den strengen Modus. (I02df6, b/187872638)FragmentStrictMode
unterstützt jetzt die Ausnahme bestimmterFragment
-Klassen vom strengen ModusViolation
, sodass für diese Klasse keine Strafen verhängt werden. (Ib4e5d, b/184786736)Die Klasse
FragmentStrictMode
Violation
wurde erweitert, um je nach Verstoß Strukturinformationen hinzuzufügen. So können Sie genau nachvollziehen, was den Verstoß verursacht hat, und das fragliche Fragment (If5118, b/187871150) prüfen. JedeViolation
enthält Folgendes:WrongFragmentContainerViolation
enthält jetzt denViewGroup
, dem dieFragment
hinzugefügt werden sollte. (I83c75, b/187871150)TargetFragmentUsageViolation
wurde inSetTargetFragmentUsageViolation
,GetTargetFragmentUsageViolation
undGetTargetFragmentRequestCodeUsageViolation
erweitert.SetTargetFragmentUsageViolation
enthält das Zielfragment und den Anfragecode. (I741b4, b/187871150)SetUserVisibleHintViolation
enthält jetzt den booleschen Wert, der ansetUserVisibleHint()
übergeben wurde. (I00585, b/187871150)FragmentTagUsageViolation
enthält jetzt die ViewGroup, in die das<fragment>
-Tag versucht hat, ein Fragment einzufügen.(I5dbbc, b/187871150)FragmentReuseViolation
enthält jetzt die eindeutige ID der vorherigen Instanz derFragment
, die die Verstoß auslöste. (I0544d, b/187871150)RetainInstanceUsageViolation
ist jetzt abstrakt und hat zwei Unterklassen,SetRetainInstanceUsageViolation
undGetRetainInstanceUsageViolation
, die die beiden Fälle für den Verstoßtyp darstellen. (Ic81e5, b/187871150)
Verhaltensänderungen
FragmentContainerView
löst jetzt eine Ausnahme aus, wenn versucht wird, dasfitsSystemWindow
-Attribut programmatisch oder über XML zu ändern. Einzüge sollten von der Ansicht jedes einzelnen Fragments verarbeitet werden. (Ie6651, b/187304502)
Version 1.4.0-alpha01
18. Mai 2021
androidx.fragment:fragment:1.4.0-alpha01
, androidx.fragment:fragment-ktx:1.4.0-alpha01
und androidx.fragment:fragment-testing:1.4.0-alpha01
werden losgelassen. Version 1.4.0-alpha01 enthält diese Commits.
Neue Funktionen
FragmentContainerView
bietet jetzt die MethodegetFragment()
, die das Fragment zurückgibt, das dem Container zuletzt hinzugefügt wurde. Dabei wird dieselbe Logik wie beifindFragmentById()
mit der ID derFragmentContainerView
verwendet, aber der Aufruf kann verschachtelt werden. (Ife17a, b/162527857)val navController = binding.container.getFragment<NavHostFragment>().navController
Es wurde das Attribut
FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}
hinzugefügt, mit dem angegeben werden kann, ob die Standardanimation für den Aktivitätsübergang aus Ihrem Design im Fragmentübergang aktiviert werden soll. (I46652)
Mehrere Backstacks
Der FragmentManager
verwaltet einen Backstack aus Fragmenttransaktionen, die addToBackStack()
verwendet haben. So können Sie diese Transaktionen aufrufen und zum vorherigen Status zurückkehren. Mit den Mechanismen zum Speichern des Status mit Fragmenten können Sie den Status Ihrer Fragmente entsprechend wiederherstellen.
Mit dieser Version werden diese Mechanismen durch zwei neue FragmentManager
APIs erweitert: saveBackStack(String name)
und restoreBackStack(String name)
. Diese APIs verwenden dieselbe name
wie addToBackStack()
, um den Status der FragmentTransaction
und den Status jedes Fragments zu speichern, das in diesen Transaktionen hinzugefügt wurde. So können Sie diese Transaktionen und ihre Fragmente später mit dem ursprünglichen Status wiederherstellen. So können Sie effektiv zwischen mehreren Backstacks wechseln, indem Sie den aktuellen Backstack speichern und einen gespeicherten Backstack wiederherstellen.
saveBackStack()
funktioniert ähnlich wie popBackStack()
, da es asynchron ist und dazu führt, dass alle Fragmenttransaktionen zurück zu diesem bestimmten Namen rückgängig gemacht („popped“) und alle hinzugefügten Fragmente zerstört und entfernt werden. Es unterscheidet sich jedoch in einigen wichtigen Punkten:
saveBackStack()
ist immer inklusiv.- Im Gegensatz zu
popBackStack()
, bei dem alle Transaktionen im Backstack an die Oberfläche gebracht werden, wenn der angegebene Name nicht im Backstack gefunden wird oder ein Nullname angegeben wird, passiert beisaveBackStack()
nichts, wenn Sie zuvor keine Fragmenttransaktion mitaddToBackStack()
mit genau diesem nicht nullwertigen Namen verbindlich gemacht haben. - Der Status aller über diese Transaktionen hinzugefügten Fragmente wird gespeichert. Das bedeutet, dass der Ansichtsstatus jedes Fragments gespeichert,
onSaveInstanceState()
jedes Fragments aufgerufen und dieser Status wiederhergestellt wird. Alle mit diesen Fragmenten verknüpftenViewModel
-Instanzen werden beibehalten undonCleared()
wird nicht aufgerufen.
Die Fragmenttransaktionen, die mit saveBackStack()
verwendet werden können, müssen bestimmte Kriterien erfüllen:
- Für jede Fragmenttransaktion muss
setReorderingAllowed(true)
verwendet werden, damit die Transaktionen als einzelner atomarer Vorgang wiederhergestellt werden können. - Die gespeicherten Transaktionen müssen in sich geschlossen sein, d.h., sie dürfen nicht explizit auf Fragmente außerhalb dieses Transaktionssatzes verweisen, damit sie jederzeit wiederhergestellt werden können, unabhängig davon, welche Änderungen in der Zwischenzeit am Backstack vorgenommen wurden.
- Kein gespeichertes Fragment darf ein in der Navigationsleiste gespeichertes Fragment sein oder ein solches Fragment in seinem übergeordneten Satz von untergeordneten Fragmenten enthalten, damit die
FragmentManager
nach dem Speichern des Backstacks keine Verweise auf gespeicherte Fragmente zurückgibt.
Ähnlich wie bei saveBackStack()
passiert bei restoreBackStack()
nichts, wenn Sie zuvor nicht saveBackStack()
mit demselben Namen aufgerufen haben. (b/80029773)
Fragment StrictMode
Die FragmentStrictMode
APIs bieten Laufzeitprüfungen, mit denen Sie prüfen können, ob Ihre App oder die von Ihnen verwendeten Bibliotheken keine veralteten Fragment-APIs aufrufen. Wenn ein Verstoß erkannt wird, können Sie eine Protokollnachricht drucken, Ihren eigenen benutzerdefinierten Listener auslösen oder Ihre App zum Absturz bringen. Die FragmentStrictMode.Policy
, die steuert, welche Prüfungen aktiviert sind und welche „Strafen“ ausgelöst werden, kann über die neue Methode setStrictModePolicy()
auf einem FragmentManager
festgelegt werden. Diese Richtlinie gilt für FragmentManager
und mittelbar für alle untergeordneten Fragmentmanager, die keine eigene Richtlinie festlegen. (#123, #131, #150, b/143774122)
detectFragmentReuse()
erkennt, ob einerFragmentManager
eine zuvor entfernteFragment
-Instanz wieder hinzugefügt wird. Sie sollten niemals mit einerFragment
-Instanz interagieren oder einen Verweis darauf behalten, nachdem sie gelöscht und aus einerFragmentManager
entfernt wurde. (#142, b/153738653)detectFragmentTagUsage()
erkennt, wenn du das<fragment>
-Tag in deiner Layout-XML verwendest. Sie sollten immerFragmentContainerView
verwenden, wenn Sie Fragmente als Teil Ihres Layouts aufblähen. (#141, b/153738235)detectWrongFragmentContainer()
erkennt, wenn einem Container ein Fragment hinzugefügt wird, das keinFragmentContainerView
ist. Sie sollten immerFragmentContainerView
als Container für Fragmente in Ihrem Layout verwenden. (#146, b/181137036)detectRetainInstanceUsage()
erkennt, wenn Sie die verworfenensetRetainInstance()
- odergetRetainInstance()
-APIs verwenden. (#140, b/153737954)detectSetUserVisibleHint()
erkennt, wenn Sie die eingestelltesetUserVisibleHint()
API verwenden. (#136, b/153738974)detectTargetFragmentUsage()
erkennt, wenn Sie die verworfenen APIssetTargetFragment()
,getTargetFragment()
odergetTargetRequestCode()
verwenden. (#139, b/153737745)
API-Änderungen
- Die experimentelle API von
FragmentManager.enableNewStateManager(boolean)
wurde entfernt und der neue Statusmanager ist jetzt die einzige verfügbare Option. (I90036, b/162776418) FragmentScenario
implementiert jetztCloseable
, sodass Sie es mit deruse
-Methode oder try-with-resources von Kotlin verwenden können. (#121, b/143774122)
Neue Lint-Prüfungen
- Die
UseGetLayoutInflater
-Lint-Prüfung warnt jetzt bei der Verwendung vonLayoutInflater.from(Context)
in einemDialogFragment
. Sie sollten immer diegetLayoutInflater()
-Methode des Dialogfragments verwenden, um den richtigen Wert fürLayoutInflater
zu erhalten. (#156, b/170781346) - Die
DialogFragmentCallbacksDetector
-Lint-Prüfung warnt jetzt, wennsetOnCancelListener
odersetOnDismissListener
in deronCreateDialog()
-Methode einerDialogFragment
aufgerufen wird. Diese Listener gehören zurDialogFragment
selbst und Sie solltenonCancel()
undonDismiss()
überschreiben, um diese Callbacks zu erhalten. (#171, b/181780047, b/187524311)
Fehlerkorrekturen
- In Fragment 1.3.4 wurde eine Regression behoben, die in Fragment
1.3.3
bei Verwendung derViewTreeViewModelStoreOwner.get()
API mitViewModelProvider
oder der Jetpack Compose-Methode vonviewModel()
in einem Fragment aufgetreten ist. In diesen Anwendungsfällen wird jetzt die von Ihrem Fragment bereitgestellteViewModelProvider.Factory
korrekt verwendet, wenn siegetDefaultViewModelProviderFactory()
überschreibt (wie bei@AndroidEntryPoint
-annotierten Fragmenten bei Verwendung von Hilt). Wenn Sie diese Methode nicht überschreiben, wird als Standard-Factory einSavedStateViewModelFactory
erstellt, das seinen Status zusammen mit der Ansicht des Fragments speichert und wiederherstellt. (I5cbfa, b/186097368) - Ab Fragment 1.3.4: Wenn du
FragmentContainerView
in API 29 verwendest, werden Einleger nicht mehr unbegrenzt gesendet. Dadurch werden Probleme mitBottomNavigationBar
- undFloatingActionButton
-Instanzen behoben. (I1bb78, b/186012452) - Ab Fragment 1.3.4: Sie können Ihre Parcelable jetzt nach dem Prozesstod aus dem Fragment-Ergebnis-Bundle abrufen. (I65932, b/187443158)
- Fragment 1.3.4: Wenn bei einer ViewGroup mit freigegebenen Elementen die Eigenschaft
transitionGroup
auf „false“ gesetzt ist, wird die ViewGroup jetzt richtig übergangen. (I99675)
Externer Beitrag
- Vielen Dank an simonschiller, dass er
FragmentScenario
Closeable
implementiert hat. (#121, b/143774122) - Vielen Dank an simonschiller, der die gesamte
FragmentStrictMode
API für diese Version hinzugefügt hat. (#123, #131, #150, b/143774122, #142, b/153738653, #141, b/153738235, #146, b/181137036, #140, b/153737954, #136, b/153738974, #139, b/153737745) - Vielen Dank an tatocaster für die
UseGetLayoutInflater
-Lint-Prüfung. (#156, b/170781346) - Vielen Dank an tatocaster für die
DialogFragmentCallbacksDetector
-Lint-Prüfung. (#171, b/181780047)
Version 1.3
Version 1.3.6
21. Juli 2021
androidx.fragment:fragment:1.3.6
, androidx.fragment:fragment-ktx:1.3.6
und androidx.fragment:fragment-testing:1.3.6
werden losgelassen. Version 1.3.6 enthält diese Commits.
Fehlerkorrekturen
- Fragment
1.4.0-alpha03
: DerFragmentManager
stürzt nicht mehr ab, wenn Sie versuchen, ein entferntes Fragment auszublenden. (I573dd, b/183634730) - Die Ansicht des Fragments wird jetzt korrekt auf
GONE
gesetzt, wennhide()
verwendet wird, während für die StammansichttransitionGroup=”true”
festgelegt ist. (aosp/1766655, b/193603427) FragmentActivity
entsperrt jetzt immer den gespeicherten Status als ersten Vorgang in den Lebenszyklus-Callbacks, die sie überschreibt. (I6db7a)
Update der Abhängigkeiten
- Von Fragment
1.3.6
: Fragmente sind jetzt von Aktivität1.2.4
(I3a66c) abhängig
Version 1.3.5
16. Juni 2021
androidx.fragment:fragment:1.3.5
, androidx.fragment:fragment-ktx:1.3.5
und androidx.fragment:fragment-testing:1.3.5
werden losgelassen. Version 1.3.5 enthält diese Commits.
Fehlerkorrekturen
- Behoben wurde eine Regression bei Übergängen für freigegebene Elemente, die durch aosp/1679887 in Fragment
1.3.4
eingeführt wurde. In Fragmenten werden jetzt Übergangsgruppen korrekt verarbeitet (entweder direkt übertransitionGroup="true"
oder indirekt übertransitionName
oderbackground
). Außerdem werden für freigegebene Elemente keineIndexOutOfBoundsException
s mehr ausgegeben. (I16484, b/188679569, b/188969304)
Version 1.3.4
18. Mai 2021
androidx.fragment:fragment:1.3.4
, androidx.fragment:fragment-ktx:1.3.4
und androidx.fragment:fragment-testing:1.3.4
werden losgelassen. Version 1.3.4 enthält diese Commits.
Fehlerkorrekturen
- Es wurde eine Regression behoben, die in Fragment
1.3.3
aufgetreten ist, wenn dieViewTreeViewModelStoreOwner.get()
API mitViewModelProvider
oder die Jetpack Compose-Methode vonviewModel()
in einem Fragment verwendet wurde, bei dem Hilt verwendet wurde. Bei diesen Anwendungsfällen wird jetzt die von Ihrem Fragment bereitgestellteViewModelProvider.Factory
korrekt verwendet, wenn siegetDefaultViewModelProviderFactory()
überschreibt (wie bei mit@AndroidEntryPoint
annotierten Fragmenten). Wenn Sie diese Methode nicht überschreiben, wird als Standard-Factory einSavedStateViewModelFactory
erstellt, das seinen Status zusammen mit der Ansicht des Fragments speichert und wiederherstellt. (I5cbfa, b/186097368) - Wenn Sie
FragmentContainerView
in API 29 verwenden, werden Einblendungen nicht mehr unbegrenzt gesendet. Dadurch werden Probleme mitBottomNavigationBar
- undFloatingActionButton
-Instanzen behoben. (I1bb78, b/186012452) - Sie können Ihre Parcelable jetzt nach dem Prozesstod aus dem Fragment-Ergebnis-Bundle abrufen. (I65932, b/187443158)
- Wenn bei einem Übergang mit freigegebenen Elementen in einer ViewGroup
transitionGroup
auf „false“ gesetzt ist, wird der Übergang jetzt korrekt ausgeführt. (I99675)
Version 1.3.3
21. April 2021
androidx.fragment:fragment:1.3.3
, androidx.fragment:fragment-ktx:1.3.3
und androidx.fragment:fragment-testing:1.3.3
werden losgelassen. Version 1.3.3 enthält diese Commits.
Neue Funktionen
- Die Verwendung von
SavedStateViewModelFactory
funktioniert jetzt, wenn sie mit derSavedStateRegistryOwner
kombiniert wird, die durch die Verwendung vonViewTreeSavedStateRegistryOwner.get()
mit der Ansicht des Fragments zurückgegeben wird. (I21acf, b/181577191)
Fehlerkorrekturen
- Eine Regression im Fragment
1.3.2
wurde behoben, die dazu führte, dasspopEnter
-Animationen nicht ausgeführt wurden, wenn einFragmentTransaction
mit einemsetPrimaryNavFragment
-Vorgang geöffnet wurde, z. B. solche, die vonNavHostFragment
verwendet werden. (I38c87, b/183877426) FragmentContainerView
sorgt jetzt dafür, dass für jedesFragment
ein neuer Satz vonWindowInsets
gesendet wird, sodass jedes Fragment die Einblendungen unabhängig voneinander nutzen kann. (I63f68, b/172153900)DialogFragment
behandelt jetzt Fälle, in denen einem Container ein untergeordnetes Fragment hinzugefügt wird, das dieselbe ID wie ein Container in Ihrer benutzerdefiniertenDialog
-Klasse hat, korrekt. Dadurch werden Probleme mit der Ansichtshierarchie behoben, wenn IDs wiederverwendet werden, die intern von Dialogen wieBottomSheetDialog
verwendet werden. (Ie6279, b/180021387)FragmentManager.dump()
wird das erste Fragment in der Liste der aktiven Fragmente jetzt korrekt eingerückt. (If5c33, b/183705451)
Fehlerkorrekturen für den neuen State Manager
- Der neue Fragmentstatusmanager verarbeitet jetzt korrekt Ausstiegsübergänge mit Ausblendvorgängen. (I9e4de, b/184830265)
Version 1.3.2
24. März 2021
androidx.fragment:fragment:1.3.2
, androidx.fragment:fragment-ktx:1.3.2
und androidx.fragment:fragment-testing:1.3.2
werden losgelassen. Version 1.3.2 enthält diese Commits.
Fehlerkorrekturen für den neuen State Manager
- Wenn Sie sowohl
popBackStack()
- als auchcommit()
-Vorgänge gleichzeitig ausführen, wird jetzt mit dem letzten Vorgang die Richtung für alle Animationen festgelegt, anstatt einige Pop- und einige Eintrittsanimationen auszuführen. (I7072e, b/181142246) - Bei einer Überblendung von freigegebenen Elementen wird der Name der Überblendung für Ansichten in einer Hierarchie von freigegebenen Elementen nicht mehr gelöscht. (I4d4a6, b/179934757)
Abhängigkeitsupdates
- Fragment hängt jetzt von Activity 1.2.2 ab. Dadurch wird ein Problem mit der
InvalidFragmentVersionForActivityResult
-Lint-Prüfung von Activity bei Verwendung von Fragment 1.3.1 oder höher behoben. - Das Fragment hängt jetzt von Lifecycle 2.3.1 ab.
Version 1.3.1
10. März 2021
androidx.fragment:fragment:1.3.1
, androidx.fragment:fragment-ktx:1.3.1
und androidx.fragment:fragment-testing:1.3.1
werden losgelassen. Version 1.3.1 enthält diese Commits.
Neue Funktionen
- Dialogfelder in einer
DialogFragment
können jetzt über ihre DecorView auf ViewTree-Inhaber zugreifen, sodassDialogFragment
mitComposeView
verwendet werden kann. (Ib9290, b/180691023)
Fehlerkorrekturen
- Fragmente, die mithilfe von FragmentContainerView in eine bereits vorhandene
RESUMED
-Aktivität eingefügt wurden, werden nach einer Konfigurationsänderung jetzt richtig angezeigt. (Ie14c8, b/180538371) - Am Ende des Fragments
toString()
ist kein zusätzliches}
mehr zu sehen (I54705, b/177761088) - Überschriebene Methoden in FragmentActivity übernehmen jetzt korrekt die JavaDoc-Informationen der Basismethode (I736ce, b/139548782)
- Die Parameterdokumente für
setFragmentResult
undsetFragmentResultListener
wurden aktualisiert, um darauf hinzuweisen, dass sie keine Nullwerte mehr akzeptieren (I990ba, b/178348386)
Fehlerkorrekturen für den neuen State Manager
- Behebung eines Speicherlecks in Fragmenten, das durch
mFocusedView
verursacht wurde (Ib4e9e, b/179925887) - Fragmente rufen jetzt bei Verwendung von Transaktionen zum Ein-/Ausblenden
onCreateOptionsMenu
richtig auf (I8bce8, b/180255554) - Untergeordnete Fragmente mit Übergängen, die vor dem Layouten des Fragments beginnen, erreichen jetzt richtig
RESUMED
(Ic11e6, b/180825150) - Mit dem
<fragment>
-Tag aufgeblähte Fragmente werden jetzt immer anRESUMED
gesendet (I452ac, I9fa49)
Abhängigkeitsupdates
- Fragment 1.3.1 hängt von Aktivität
1.2.1
ab. (I557b9)
Version 1.3.0
10. Februar 2021
androidx.fragment:fragment:1.3.0
, androidx.fragment:fragment-ktx:1.3.0
und androidx.fragment:fragment-testing:1.3.0
werden losgelassen. Version 1.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.2.0
- Neuer Statusmanager: Durch eine umfassende Umstrukturierung der internen Funktionen von
FragmentManager
wurden zahlreiche Probleme im Zusammenhang mit dem Senden von Lebenszyklusereignissen, Animationen und Übergängen sowie der Verarbeitung verschobener Fragmente behoben. Integration der Activity Result API: Es wurde Unterstützung für die
ActivityResultRegistry
API hinzugefügt, die in Activity1.2.0
eingeführt wurde, umstartActivityForResult()
+onActivityResult()
- sowierequestPermissions()
+onRequestPermissionsResult()
-Abläufe zu verarbeiten, ohne Methoden in Ihrem Fragment zu überschreiben. Außerdem gibt es jetzt Hooks zum Testen dieser Abläufe. Weitere Informationen finden Sie im aktualisierten Hilfeartikel Ergebnis aus einer Aktivität abrufen.- In dieser Version wurden mehrere Probleme mit ungültigen Anfragecodes und dem Senden von Berechtigungsanfragen behoben, die die Funktion der Activity Result API in früheren Versionen von
FragmentActivity
verhindert haben. Sie müssen auf Fragment 1.3.0 umstellen, um die Activity Result APIs in einerFragmentActivity
oderAppCompatActivity
zu verwenden.
- In dieser Version wurden mehrere Probleme mit ungültigen Anfragecodes und dem Senden von Berechtigungsanfragen behoben, die die Funktion der Activity Result API in früheren Versionen von
Fragment Result API: Am
FragmentManager
wurde die Unterstützung für die Weitergabe von Ergebnissen zwischen zwei Fragmenten über neue APIs hinzugefügt. Das funktioniert für hierarchische Fragmente (übergeordnetes/untergeordnetes Fragment), DialogFragmente und Fragmente in der Navigation. So wird sichergestellt, dass Ergebnisse nur an Ihr Fragment gesendet werden, wenn es mindestensSTARTED
ist. Die Target-Fragment-APIs wurden zugunsten dieser neuen APIs eingestellt. Weitere Informationen finden Sie unter Ergebnisse mithilfe der Fragment Result API abrufen.FragmentOnAttachListener
: DeronAttachFragment()
-Callback aufFragmentActivity
undFragment
wurde eingestellt. Es wurde eine neueFragmentOnAttachListener
hinzugefügt, die eine flexiblere Alternative bietet. So könnenonAttachFragment()
an separate, testbare Listener delegiert werden und es wird unterstützt, einem anderen FragmentManager als dem direkten untergeordneten FragmentManager einen Listener hinzuzufügen.FragmentScenario
-Verbesserungen: DieFragmentScenario
-Klasse aus demfragment-testing
-Artefakt wurde in Kotlin neu geschrieben und es wurden einige Verbesserungen vorgenommen:FragmentScenario
verwendet jetztsetMaxLifecycle()
, ummoveToState()
zu implementieren. Dadurch wird ein einheitliches Verhalten auf allen API-Ebenen sichergestellt und der Status des Fragments von der zugrunde liegenden Aktivität entkoppelt.FragmentScenario
unterstützt jetzt das Festlegen eines erstenLifecycle.State
, um den Status des Fragments zu bestätigen, bevor zum ersten Mal zu jedemLifecycle.State
gewechselt wird.- Es gibt jetzt eine Alternative zur
FragmentScenario
API vononFragment
in Form der reifierten Kotlin-ErweiterungsmethodewithFragment
, mit der Sie einen Wert zurückgeben können. Insbesondere werden im angegebenen Block ausgelöste Ausnahmen noch einmal geworfen.
ViewTree
-Unterstützung:Fragment
unterstützt jetzt die APIsViewTreeLifecycleOwner.get(View)
,ViewTreeViewModelStoreOwner.get(View)
undViewTreeSavedStateRegistryOwner
, die in Lifecycle2.3.0
und SavedState1.1.0
hinzugefügt wurden. Wenn Sie also einView
in einemFragment
verwenden, wird das Fragment alsViewModelStoreOwner
zurückgegeben und einSavedStateRegistryOwner
undLifecycleOwner
, die mit dem Lebenszyklus der Ansicht des Fragments verknüpft sind.Änderungen an der
TRANSIT_
-Animation: Für die Standardeffekte von Fragmenten (TRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
undTRANSIT_FRAGMENT_FADE
) wird jetztAnimator
anstelle vonAnimation
verwendet. Die Ressourcen, die zum Erstellen dieser Animatoren verwendet wurden, sind jetzt privat.Einstellung von
setRetainInstance()
: DiesetRetainInstance()
-Methode für Fragmente wurde eingestellt. Mit der Einführung von ViewModels haben Entwickler eine spezielle API zum Speichern des Status, die mit Aktivitäten, Fragmenten und Navigationsgrafiken verknüpft werden kann. So können Entwickler ein normales, nicht beibehaltenes Fragment verwenden und den zu behaltenden Status getrennt halten. Dadurch wird eine häufige Ursache für Lecks vermieden, während die nützlichen Eigenschaften einer einzelnen Erstellung und Zerstörung des beibehaltenen Status beibehalten werden (nämlich der Konstruktor derViewModel
und deronCleared()
-Callback, den sie empfängt).Einstellung des ViewPager 1-Adapters: Mit der Veröffentlichung von ViewPager2
1.0.0
wurden die KlassenFragmentPagerAdapter
undFragmentStatePagerAdapter
für die Interaktion mitViewPager
eingestellt. Weitere Informationen finden Sie unter Von ViewPager zu ViewPager2 migrieren.
Version 1.3.0-rc02
27. Januar 2021
androidx.fragment:fragment:1.3.0-rc02
, androidx.fragment:fragment-ktx:1.3.0-rc02
und androidx.fragment:fragment-testing:1.3.0-rc02
werden losgelassen. Version 1.3.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das ein übergeordnetes
DialogFragment
nach einer Konfigurationsänderung über einem untergeordnetenDialogFragment
angezeigt wurde. Untergeordnete Dialogfeldfragmente werden jetzt immer über einem übergeordneten Dialogfeldfragment angezeigt. (I30806, b/177439520) - Ein Problem wurde behoben, durch das beim Ausführen eines
hide
-Vorgangs mit einemAnimation
-Fragment das ausgeblendete Fragment am Ende der Animation flackerte. (I57e22, b/175417675) - Fragmente mit Übergängen, die vor dem Anhängen der Ansichtshierarchie hinzugefügt wurden, erreichen jetzt
RESUMED
. (I1fc1d, b/177154873)
Fehlerkorrekturen für den neuen State Manager
- Die Ansicht des Fragments
Lifecycle
verarbeitet jetzt korrekt Fälle, in denen die Ansicht des Fragments zerstört wird, bevorLifecycle
CREATED
erreicht. So werden Ausnahmen wie „Kein Ereignis von INITIALIZED“ vermieden. (eda2bd, b/176138645) - Fragmente, die ein
Animator
verwenden, werden jetzt in der richtigen Reihenfolge angezeigt, wennFragmentContainerView
verwendet wird. (Id9aa3, b/176089197)
Version 1.3.0-rc01
16. Dezember 2020
androidx.fragment:fragment:1.3.0-rc01
, androidx.fragment:fragment-ktx:1.3.0-rc01
und androidx.fragment:fragment-testing:1.3.0-rc01
werden losgelassen. Version 1.3.0-rc01 enthält diese Commits.
Fehlerkorrekturen
onPrepareOptionsMenu()
folgt jetzt derselben Logik wieonCreateOptionsMenu()
und wird nicht mehr aufgerufen, wenn ein übergeordnetes FragmentsetMenuVisibility(false)
aufruft. (Id7de8, b/173203654)
Fehlerkorrekturen für den neuen State Manager
- Lecks und visuelle Artefakte wurden behoben, die beim Hinzufügen eines Fragments mit einem
Animation
zu einemFragmentContainerView
und anschließenden Unterbrechen dieser Addition durch einen Pop-Vorgang auftraten. (I952d8) - Ein Problem wurde behoben, durch das die Ansicht des Fragments in der Ansichtshierarchie verblieb, wenn es während der
onCreate()
- oderonViewCreated()
-Methoden ersetzt wurde. (I8a7d5) - Der Fokus wird jetzt bei der Wiederaufnahme von Fragment-Stammansichten korrekt wiederhergestellt. (Ifc84b)
- Wenn Pop- und Replace-Vorgänge in derselben Fragmenttransaktion kombiniert werden, werden jetzt die richtigen Animationen angezeigt (Ifd4e4, b/170328691)
Version 1.3.0-beta02
2. Dezember 2020
androidx.fragment:fragment:1.3.0-beta02
, androidx.fragment:fragment-ktx:1.3.0-beta02
und androidx.fragment:fragment-testing:1.3.0-beta02
werden losgelassen. Version 1.3.0-beta02 enthält diese Commits.
Neue Funktionen
FragmentScenario
wurde vollständig in Kotlin konvertiert. Dabei wurde die Quell- und Binärkompatibilität durch die Verwendung der funktionalen Schnittstellen von Kotlin 1.4 fürFragmentAction
beibehalten. (I19d31)
Verhaltensänderungen
- FragmentContainerViews, die ein Fragment nicht mit dem
class
- oderandroid:name
-Attribut aufblähen, können jetzt außerhalb einerFragmentActivity
verwendet werden. (Id4397, b/172266337) - Wenn versucht wird, die maximale Lebensdauer eines Fragments auf
DESTROYED
festzulegen, wird jetzt eineIllegalArgumentException
ausgegeben (Ie7651, b/170765622) - Wenn ein FragmentScenario mit dem Status
DESTROYED
initialisiert wird, wird jetzt eineIllegalArgumentException
geworfen (I73590, b/170765622)
Fehlerkorrekturen für den neuen State Manager
- Ein Problem wurde behoben, durch das die Ansicht nicht ihren Endstatus erreichte, wenn ein Fragmentübergang unterbrochen wurde, bei dem eine
Animator
oder eine derTRANSIT_FRAGMENT_
-Optionen verwendet wurde. (I92426, b/169874632) - Ein Problem wurde behoben, das dazu führte, dass Fragmente mit einer ausgehenden
Animation
nicht ordnungsgemäß gelöscht wurden. (I83d65) - Wenn Fragmente verlassen werden, deren Effekte rückgängig gemacht wurden, werden sie jetzt korrekt abgebrochen und mit dem richtigen Eintrittseffekt neu gestartet. (I62226, b/167092035)
- Ein Problem wurde behoben, bei dem die Anweisung „exit
Animator
“ einerhide()
nicht ausgeführt wurde. (Id7ffe) - Fragmente werden jetzt korrekt angezeigt, wenn sie verschoben und dann sofort gestartet werden. (Ie713b, b/170022857)
- Bei Fragmenten, bei denen die Ansicht, auf die der Fokus gerichtet ist, während einer Animation entfernt wird, wird der Fokus nicht mehr auf die getrennte Ansicht zurückgesetzt, sobald
RESUMED
erreicht wird (I38c65, b/172925703)
Externer Beitrag
FragmentFactory
speichert Fragmentklassen jetzt separat für verschiedeneClassLoader
-Instanzen im Cache. Viele Grüße Simon Schiller (#87, b/113886460)
Version 1.3.0-beta01
1. Oktober 2020
androidx.fragment:fragment:1.3.0-beta01
, androidx.fragment:fragment-ktx:1.3.0-beta01
und androidx.fragment:fragment-testing:1.3.0-beta01
werden losgelassen. Version 1.3.0-beta01 enthält diese Commits.
Neue Funktionen
setMaxLifecycle()
unterstützt jetzt die Einstellung desLifecycle
-Status aufINITIALIZING
, solange das Fragment nicht inCREATED
verschoben wurde. (b/159662173)
API-Änderungen
- Upgrade von androidx auf Kotlin 1.4 (Id6471, b/165307851, b/165300826)
Verhaltensänderungen
- Die Fragment-Ressourcendateien wurden korrekt als privat gekennzeichnet. (aosp/1425237)
Fehlerkorrekturen
- Bei Fragmenten, die mit dem
<fragment>
-Tag maximiert werden, wird jetzt richtig gewartet, bis die Ansichten einem Container hinzugefügt wurden, bevor der Status in „STARTED“ (BEGONNEN) geändert wird (I02f4c) - Für Fragmente, die sichtbar sind und dann
setMaxLifecycle()
bisCREATED
werden die Ausstiegseffekte jetzt richtig ausgeführt. (b/165822335) - Das Entfernen eines losgelösten Fragments, das nicht zum Backstack hinzugefügt wird, führt nicht mehr zu einem Speicherleck. Mit freundlicher Genehmigung von Nicklas Ansman Giertz (b/166489383)
- Aktive Fragmente haben jetzt immer einen nicht nullwertigen Wert für
FragmentManager
und Fragmente mit einem nicht nullwertigen Wert fürFragmentManager
werden immer als aktiv betrachtet. (aosp/1422346) - Für die Standardeffekte von Fragmenten (
TRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
undTRANSIT_FRAGMENT_FADE
) wird jetztAnimator
anstelle vonAnimation
verwendet. (b/166155034)
Fehlerkorrekturen für den neuen State Manager
- Der Fokusstatus der Ansicht wird jetzt korrekt wiederhergestellt, kurz bevor die Animation beginnt. (Icc256)
- Bei Fragmenten, die nur einen gemeinsamen Elementübergang haben, werden die Spezialeffekte jetzt richtig abgeschlossen, d. h., sie wechseln tatsächlich in ihren Endzustand (Iaebc7, b/166658128)
- Fragmentansichten werden jetzt immer aus dem Container entfernt, bevor sie gelöscht werden. (Id5876)
- Der neue Statusmanager entfernt jetzt konsequent die Ansicht des austretenden Fragments, bevor die Ansicht des eintretenden Fragments hinzugefügt wird. (I41a6e)
- Der neue Statusmanager berücksichtigt jetzt explizite Änderungen an der Sichtbarkeit einer Fragmentansicht. Wenn Sie also die Ansicht eines eingehenden Fragments vor Beginn der Animation auf
INVISIBLE
festlegen, bleibt es unsichtbar. (b/164481490) - Bei Fragmenten hat
Animators
jetzt Vorrang vorAnimations
. Das bedeutet, dass in einem Fragment mit beiden nurAnimator
ausgeführt undAnimation
ignoriert wird. (b/167579557) - Der neue Statusmanager sorgt nicht mehr dafür, dass Fragmente bei Verwendung von Eintrittsanimationen flackern. (b/163084315)
Bekanntes Problem
Wenn du bei Verwendung des neuen Statusmanagers während der Eingabe eines Spezialeffekts die Schaltfläche „Zurück“ drückst, anstatt zum vorherigen Fragment zurückzukehren, wird das alte Fragment nie wieder hinzugefügt. Das führt zu einem leeren Bildschirm. (b/167259187, b/167092035, b/168442830)
Version 1.3.0-alpha08
19. August 2020
androidx.fragment:fragment:1.3.0-alpha08
, androidx.fragment:fragment-ktx:1.3.0-alpha08
und androidx.fragment:fragment-testing:1.3.0-alpha08
werden losgelassen. Version 1.3.0-alpha08 enthält diese Commits.
New State Manager
Diese Version enthält eine umfassende Refaktorisierung der internen Statusverwaltung von FragmentManager
, die sich auf die Ausführung von Lebenszyklusmethoden, Animationen und Übergängen sowie auf die Verarbeitung verschobener Transaktionen auswirkt. Diese Einstellung ist standardmäßig aktiviert. Weitere Informationen finden Sie im Blogpost Fragments: Rebuilding the Internals. (b/139536619, b/147749580)
- Mit einer experimentellen API in
FragmentManager.enableNewStateManager(boolean)
lässt sich steuern, ob der FragmentManager den neuen Statusmanager verwendet. (I7b6ee)
Die folgenden Probleme werden nur durch die Verwendung des neuen Statusmanagers behoben:
- Das vorherige Fragment eines
replace
-Vorgangs wird jetzt korrekt beendet, bevor das neue Fragment gestartet wird. (b/161654580) - Mithilfe von Fragmenten wird jetzt verhindert, dass mehrere konkurrierende Animationen auf denselben Fragmenten ausgeführt werden. So wird verhindert, dass eine
Animation
alleTransition
-Effekte überschreibt oder eineAnimator
und eineTransition
auf einem einzelnen Fragment gleichzeitig ausgeführt werden. (b/149569323) - Jetzt werden
enterTransition
undexitTranstion
für alle ein- und ausgehenden Fragmente ausgeführt, nicht nur für das letzte ein- und das erste ausgehende Fragment. (b/149344150) - Verschobene Fragmente bleiben nicht mehr im Status
CREATED
hängen, sondern wechseln zusammen mit anderen Fragmenten zuSTARTED
. (b/129035555) - Ein Problem wurde behoben, bei dem
FragmentManager
Vorgänge in der falschen Reihenfolge ausführte, wenn eine verschobene, neu sortierte Transaktion mit einer nicht neu sortierten Transaktion kombiniert wurde. (b/147297731) - Wenn mehrere Fragmente gleichzeitig eingeblendet werden, werden beim Aufschieben von Fragmenten keine Zwischenfragmente mehr vorübergehend angezeigt. (b/37140383)
FragmentManager
gibt jetzt die richtigen Fragmente zurück, wennfindFragmentById()
oderfindFragmentByTag()
innerhalb desonAttachFragment()
-Callbacks aufgerufen wird. (b/153082833)- Fragmente rufen
onCreateView()
nicht mehr bei Fragmenten auf, die zerstört werden, wenn das Fragment, das sie ersetzt, verschoben wird. (b/143915710) - In der Fehlermeldung beim Versuch, Framework-
Transition
- und AndroidX-Transition
-Instanzen zu kombinieren, wird jetzt das Fragment mit der ungültigen Überleitung erwähnt. (b/155574969)
Verhaltensänderungen
- Sie können jetzt
launch()
für einActivityResultLauncher
in deronCreate()
-Lebenszyklusmethode eines Fragments aufrufen. (b/161464278) - Wenn
registerForActivityResult()
nachonCreate()
aufgerufen wird, wird jetzt eine Ausnahme ausgelöst, die darauf hinweist, dass dies nicht zulässig ist. Nach einer Konfigurationsänderung werden keine Ergebnisse mehr ausgegeben. (b/162255449) FragmentActivity
verwendet jetzt dieOnContextAvailableListener
API, die in Aktivität1.2.0-alpha08
eingeführt wurde, um den Status derFragmentManager
wiederherzustellen. Alle Listener, die Unterklassen vonFragmentActivity
hinzugefügt werden, werden nach diesem Listener ausgeführt. (I513da)
Fehlerkorrekturen
ActivityOptions
, die bei Verwendung vonstartIntentSenderForResult()
übergeben werden, werden jetzt berücksichtigt. (b/162247961)
Bekanntes Problem
- Wenn Sie den neuen Statusmanager verwenden und die Sichtbarkeit der Stammansicht des Fragments direkt nach
onViewCreated()
und voronResume()
festlegen, wird die von Ihnen festgelegte Sichtbarkeit vonFragmentManager
überschrieben, da dieser die Sichtbarkeit der Stammansicht steuert. Als Behelfslösung sollten Sie immer die Vorgängehide()
undshow()
verwenden, um die Sichtbarkeit Ihres Fragments zu ändern. (b/164481490)
Version 1.3.0-alpha07
22. Juli 2020
androidx.fragment:fragment:1.3.0-alpha07
, androidx.fragment:fragment-ktx:1.3.0-alpha07
und androidx.fragment:fragment-testing:1.3.0-alpha07
werden losgelassen. Version 1.3.0-alpha07 enthält diese Commits.
Neue Funktionen
FragmentScenario
unterstützt jetzt das Festlegen eines anfänglichen Lebenszyklusstatus vonCREATED
,STARTED
oderRESUMED
, anstatt das Fragment immer in den StatusRESUMED
zu verschieben. (b/159662750)- Es wurde eine Alternative zur
FragmentScenario
API vononFragment
in Form der reifierten Kotlin-ErweiterungsmethodewithFragment
hinzugefügt, mit der ein Wert zurückgegeben werden kann. Insbesondere werden im angegebenen Block ausgelöste Ausnahmen noch einmal geworfen. (b/158697631)
Verhaltensänderungen
FragmentScenario
verwendet jetztsetMaxLifecycle()
, ummoveToState()
zu implementieren. Dadurch wird ein einheitliches Verhalten auf allen API-Ebenen sichergestellt und der Status des Fragments von der zugrunde liegenden Aktivität entkoppelt. (b/156527405)- Die von
ViewTreeSavedStateRegistryOwner
zurückgegebeneSavedStateRegistryOwner
ist jetzt an den Lebenszyklus der Fragmentansicht gebunden. So wird sichergestellt, dass der Status des Fragments gleichzeitig mit der Ansicht des Fragments gespeichert und wiederhergestellt wird. (b/158503763)
Fehlerkorrekturen
- Bei Fragmenten wird jetzt gewartet, bis die Ansicht des Fragments angehängt wurde, bevor
ViewCompat.requestApplyInsets()
aufgerufen wird. So wird verhindert, dass die Einbettungsanfrage verworfen wird. (b/158095749) - Durch den Aufruf von
clearFragmentResultListener
wird der Lebenszyklus-Beobachter jetzt ordnungsgemäß gelöscht. (b/159274993)
Version 1.3.0-alpha06
10. Juni 2020
androidx.fragment:fragment:1.3.0-alpha06
, androidx.fragment:fragment-ktx:1.3.0-alpha06
und androidx.fragment:fragment-testing:1.3.0-alpha06
werden losgelassen. Version 1.3.0-alpha06 enthält diese Commits.
Neue Funktionen
- Der
onAttachFragment()
-Callback fürFragmentActivity
undFragment
wurde eingestellt. Es wurde eine neueFragmentOnAttachListener
hinzugefügt, die eine flexiblere Alternative bietet. Sie ermöglicht die Delegierung vononAttachFragment()
an separate, testbare Listener und unterstützt das Hinzufügen eines Listeners zu FragmentManagers, die nicht direkt untergeordnet sind. (I06d3d)
Fehlerkorrekturen
- Der Ansichtsstatus von übergeordneten Fragmenten wird jetzt vor dem von untergeordneten Fragmenten wiederhergestellt. Dadurch wird ein Problem mit der visuellen Reihenfolge nach einer Konfigurationsänderung behoben, bei dem ein
DialogFragment
ein anderesDialogFragment
als untergeordnetes Fragment anzeigt. (b/157195715) - Ein Problem wurde behoben, bei dem die
UseRequireInsteadOfGet
-Lint-Prüfung die verkettete Verwendung der Operatoren?.
und!!
nicht richtig verarbeitete. (b/157677616)
Version 1.3.0-alpha05
20. Mai 2020
androidx.fragment:fragment:1.3.0-alpha05
, androidx.fragment:fragment-ktx:1.3.0-alpha05
und androidx.fragment:fragment-testing:1.3.0-alpha05
werden losgelassen. Version 1.3.0-alpha05 enthält diese Commits.
Neue Funktionen
- Unterstützung für
ViewTreeViewModelStoreOwner
aus Lifecycle2.3.0-alpha03
undViewTreeSavedStateRegistryOwner
aus SavedState1.1.0-alpha01
hinzugefügt, wenn eineView
in einerFragment
verwendet wird. (aosp/1297993, aosp/1300264)
API-Änderungen
- Die
setFragmentResult()
- undsetFragmentResultListener()
-APIs akzeptieren jetzt jeweils einen nicht nullwertigenBundle
undFragmentResultListener
. Wenn Sie ein zuvor festgelegtes Ergebnis oder einen zuvor festgelegten Listener explizit löschen möchten, verwenden Sie die neuen MethodenclearFragmentResult()
undclearFragmentResultListener()
. (b/155416778) - Die
setFragmentResultListener()
Kotlin-Erweiterungen, die ein Lambda annehmen, sind jetzt alsinline
gekennzeichnet. (b/155323404)
Verhaltensänderungen
- Für die zuvor eingestellten
startActivityForResult()
-,startIntentSenderForResult()
- undrequestPermissions
-Versionen vonFragment
wird jetzt internActivityResultRegistry
verwendet. Damit entfällt die Einschränkung, dass bei der Verwendung dieser APIs nur die niedrigeren Bits (unter0xFFFF
) für Ihre Anfragecodes verwendet werden dürfen. (b/155518741)
Aktualisierungen der Dokumentation
- Die Dokumentation zu den Konstruktoren
Fragment(@LayoutRes int)
undDialogFragment(@LayoutRes int)
wurde erweitert, um zu verdeutlichen, dass sie bei Verwendung des StandardwertsFragmentFactory
vom Konstruktor ohne Argumente der Unterklassen aufgerufen werden sollten. (b/153042497)
Version 1.3.0-alpha04
29. April 2020
androidx.fragment:fragment:1.3.0-alpha04
, androidx.fragment:fragment-ktx:1.3.0-alpha04
und androidx.fragment:fragment-testing:1.3.0-alpha04
werden losgelassen. Version 1.3.0-alpha04 enthält diese Commits.
Neue Funktionen
- Am
FragmentManager
wurde die Unterstützung für die Weitergabe von Ergebnissen zwischen zwei Fragmenten über neue APIs hinzugefügt. Das funktioniert für hierarchische Fragmente (übergeordnetes/untergeordnetes Fragment), DialogFragmente und Fragmente in der Navigation. So wird sichergestellt, dass Ergebnisse nur an Ihr Fragment gesendet werden, wenn es mindestensSTARTED
ist. (b/149787344)
API-Änderungen
- Die Zielfragment-APIs wurden eingestellt. Zum Übergeben von Daten zwischen Fragmenten sollten stattdessen die neuen Fragment Result APIs verwendet werden. (b/149787344)
- Die APIs
startActivityForResult()
/onActivityResult()
undrequestPermissions()
/onRequestPermissionsResult()
auf Fragment wurden eingestellt. Verwenden Sie die APIs für Aktivitätsergebnisse. (aosp/1290887) - Funktionsgefährdende Änderung bei Aktivität
1.2.0-alpha04
: Die MethodeprepareCall()
wurde inregisterForActivityResult()
umbenannt. (aosp/1278717)
Fehlerkorrekturen
- Die
getViewLifecycleOwner()
des Fragments wird jetzt beendet, bevoronSaveInstanceState()
aufgerufen wird, was dem Verhalten des Lebenszyklus des Fragments entspricht. (b/154645875) - Wenn
setMenuVisibility(false)
auf ein Fragment angewendet wird, wird jetzt die Sichtbarkeit der Menüs korrekt geändert, die von den untergeordneten Fragmenten bereitgestellt werden. (b/153593580) - Ein
illegalStateException
wurde behoben, das beim Hinzufügen eines Fragments zur Ansichtshierarchie einerDialogFragment
mitFragmentContainerView
aufgetreten ist. (b/154366601) - Die
getDefaultViewModelProviderFactory()
-Methode für Fragmente stürzt nicht mehr ab, wenn Sie Ihre Fragmente außerhalb einer Aktivität hosten. (b/153762914)
Version 1.3.0-alpha03
1. April 2020
androidx.fragment:fragment:1.3.0-alpha03
, androidx.fragment:fragment-ktx:1.3.0-alpha03
und androidx.fragment:fragment-testing:1.3.0-alpha03
werden losgelassen. Version 1.3.0-alpha03 enthält diese Commits.
API-Änderungen
- Die
prepareCall
-Methoden aufFragment
sind jetztfinal
. (b/152439361)
Fehlerkorrekturen
- Ein Regressionsfehler bei der Verwendung von
BottomSheetDialogFragment
im Fragment1.3.0-alpha02
wurde behoben. (b/151652127, aosp/1263328, aosp/1265163) - Ein Absturz bei der Verwendung von
prepareCall
aus einem Fragment nach einer Konfigurationsänderung wurde behoben. (b/152137004) - Ein Problem wurde behoben, bei dem gemeinsame Elemente und Ausstiegsübergänge bei Verwendung von
setTargetFragment()
ignoriert wurden. (b/152023196) - Fragment
1.2.4
: Die ProGuard-Regeln für Fragmente wurden aktualisiert, um die Verschleierung von beibehaltenen Fragmenten zu ermöglichen. (b/151605338) - Fragment
1.2.4
: DieFragmentLiveDataObserve
-Lint-Regel fürDialogFragment
-Klassen wurde deaktiviert, da ihr Lebenszyklus und der Lebenszyklus der Ansicht immer synchron sind. Beim Aufrufen vonobserve
kann also entwederthis
oderviewLifecycleOwner
verwendet werden. (b/151765086)
Änderungen an Abhängigkeiten
- Fragmente sind von Aktivität
1.2.0-alpha03
abhängig, bei der die Activity Result API, die in Aktivität1.2.0-alpha02
eingeführt wurde, erheblich verbessert wurde.
Version 1.3.0-alpha02
18. März 2020
androidx.fragment:fragment:1.3.0-alpha02
, androidx.fragment:fragment-ktx:1.3.0-alpha02
und androidx.fragment:fragment-testing:1.3.0-alpha02
werden losgelassen. Version 1.3.0-alpha02 enthält diese Commits.
Neue Funktionen
- Unterstützung für die
ActivityResultRegistry
API hinzugefügt, die in Aktivität1.2.0-alpha02
eingeführt wurde, um die AufrufabfolgenstartActivityForResult()
+onActivityResult()
undrequestPermissions()
+onRequestPermissionsResult()
zu verarbeiten, ohne Methoden in Ihrem Fragment zu überschreiben. Außerdem gibt es jetzt Hooks zum Testen dieser Aufrufabfolgen. Weitere Informationen finden Sie im aktualisierten Hilfeartikel Ergebnis aus einer Aktivität abrufen. (b/125158199)
API-Änderungen
DialogFragment
bietet jetzt einen Konstruktor, der ein@LayoutRes
annimmt, das das Layout angibt, dasonCreateView()
standardmäßig aufblähen soll. (b/150327080)- Die Methode
onActivityCreated()
ist jetzt eingestellt. Code, der sich auf die Ansicht des Fragments bezieht, sollte inonViewCreated()
platziert werden, der direkt voronActivityCreated()
aufgerufen wird. Anderer Initialisierungscode sollte inonCreate()
platziert werden. Wenn Sie einen Rückruf erhalten möchten, sobald dieonCreate()
der Aktivität abgeschlossen ist, sollte einLifeCycleObserver
für dieLifecycle
der Aktivität inonAttach()
registriert und entfernt werden, sobald deronCreate()
-Rückruf empfangen wurde. (b/144309266)
Fehlerkorrekturen
- Fragment
1.2.3
: Ein Fehler inDialogFragment
wurde behoben, der beim Aufrufen vongetLayoutInflater()
ausonCreateDialog()
zu einemStackOverflowError
führte. (b/117894767, aosp/1258664) - Fragment
1.2.3
: Der Umfang der ProGuard-Regeln für Fragmente wurde reduziert, damit nicht verwendete Fragmentklassen entfernt werden können. (b/149665169) - Fragment
1.2.3
: Es wurden Falschmeldungen in derUseRequireInsteadOfGet
-Lint-Prüfung behoben, wenn ein lokaler Variablenname den Namen der Kotlin-Eigenschaft überschattet hat. (b/149891163) - Ab Fragment
1.2.3
:FragmentContainerView
löst nicht mehr eineUnsupportedOperationException
aus, wenn in der Layoutvorschau der falsche Konstruktor verwendet wird. (b/149707833)
Bekannte Probleme
BottomSheetDialogFragment
platziert das Dialogfeld nicht mehr richtig auf dem Bildschirm. (b/151652127)
Version 1.3.0-alpha01
4. März 2020
androidx.fragment:fragment:1.3.0-alpha01
, androidx.fragment:fragment-ktx:1.3.0-alpha01
und androidx.fragment:fragment-testing:1.3.0-alpha01
werden losgelassen. Version 1.3.0-alpha01 enthält diese Commits.
Neue Funktionen
- Unterstützung für die
ViewTreeLifecycleOwner.get(View)
API hinzugefügt, die in Lifecycle2.3.0-alpha01
hinzugefügt wurde. Dadurch wird dieviewLifecycleOwner
des Fragments alsLifecycleOwner
für alle vononCreateView()
zurückgegebenen Ansichten zurückgegeben. (aosp/1182955)
API-Änderungen
- Die Methode
setRetainInstance()
für Fragmente wurde eingestellt. Mit der Einführung von ViewModels haben Entwickler eine spezielle API zum Speichern des Status, die mit Aktivitäten, Fragmenten und Navigationsgrafiken verknüpft werden kann. So können Entwickler ein normales, nicht beibehaltenes Fragment verwenden und den zu behaltenden Status getrennt halten. Dadurch wird eine häufige Ursache für Lecks vermieden, während die nützlichen Eigenschaften einer einzelnen Erstellung und Zerstörung des beibehaltenen Status beibehalten werden (nämlich der Konstruktor derViewModel
und deronCleared()
-Callback, den sie empfängt). (b/143911815) - Mit der Veröffentlichung von ViewPager2
1.0.0
wurden die KlassenFragmentPagerAdapter
undFragmentStatePagerAdapter
für die Interaktion mitViewPager
eingestellt. Weitere Informationen finden Sie unter Von ViewPager zu ViewPager2 migrieren. (b/145132715)
Fehlerkorrekturen
- Mit den ProGuard-Regeln für Fragmente werden jetzt nur die Standardkonstruktoren der
Fragment
-Klassen beibehalten, die verwendet werden, anstatt für alleFragment
-Instanzen. Dadurch wird eine Regression behoben, die mit Fragment1.2.1
eingeführt wurde. (b/149665169 - Die
require___()
-Lint-Regeln, die in Fragment1.2.2
hinzugefügt wurden, lösen bei lokalen Variablen, die denselben Namen wie die schattigen Kotlin-Property-Namen haben, keine Falschmeldungen mehr aus (d.h.view
). (b/149891163) FragmentContainerView
löst bei Verwendung der Layoutvorschau in Android Studio keineUnsupportedOperationException
mehr aus. (b/149707833)- Ein Problem wurde behoben, durch das beibehaltene Fragmente, die nach dem Speichern des Status hinzugefügt wurden, nicht kontinuierlich neu erstellt und nach jeder Konfigurationsänderung wieder gelöscht wurden. (b/145832397)
Version 1.2.5
Version 1.2.5
10. Juni 2020
androidx.fragment:fragment:1.2.5
, androidx.fragment:fragment-ktx:1.2.5
und androidx.fragment:fragment-testing:1.2.5
werden losgelassen. Version 1.2.5 enthält diese Commits.
Fehlerkorrekturen
- Die
getViewLifecycleOwner()
des Fragments wird jetzt beendet, bevoronSaveInstanceState()
aufgerufen wird, was dem Verhalten des Lebenszyklus des Fragments entspricht. Diese Funktion wurde bereits in Fragment1.3.0-alpha04
veröffentlicht. (b/154645875) - Wenn
setMenuVisibility(false)
auf ein Fragment angewendet wird, wird jetzt die Sichtbarkeit der Menüs korrekt geändert, die von den untergeordneten Fragmenten bereitgestellt werden. Diese Funktion wurde bereits in Fragment1.3.0-alpha04
veröffentlicht. (b/153593580)
Version 1.2.4
Version 1.2.4
1. April 2020
androidx.fragment:fragment:1.2.4
, androidx.fragment:fragment-ktx:1.2.4
und androidx.fragment:fragment-testing:1.2.4
werden losgelassen. Version 1.2.4 enthält diese Commits.
Fehlerkorrekturen
- Die ProGuard-Regeln für Fragmente wurden aktualisiert, um die Verschleierung von beibehaltenen Fragmenten zu ermöglichen. (b/151605338)
- Die
FragmentLiveDataObserve
-Lint-Regel fürDialogFragment
-Klassen wurde deaktiviert, da ihr Lebenszyklus und der Lebenszyklus der Ansicht immer synchron sind. Daher kann beim Aufrufen vonobserve
entwederthis
oderviewLifecycleOwner
verwendet werden. (b/151765086)
Version 1.2.3
Version 1.2.3
18. März 2020
androidx.fragment:fragment:1.2.3
, androidx.fragment:fragment-ktx:1.2.3
und androidx.fragment:fragment-testing:1.2.3
werden losgelassen. Version 1.2.3 enthält diese Commits.
Fehlerkorrekturen
- Ein Fehler in
DialogFragment
wurde behoben, der beim Aufrufen vongetLayoutInflater()
ausonCreateDialog()
zu einerStackOverflowError
geführt hat. (b/117894767, aosp/1258665) - Der Umfang der ProGuard-Regeln für Fragmente wurde reduziert, damit nicht verwendete Fragmentklassen entfernt werden können. (b/149665169)
- Falsch positive Ergebnisse in der
UseRequireInsteadOfGet
-Lint-Prüfung wurden behoben, wenn ein lokaler Variablenname den Namen der Kotlin-Eigenschaft überschattet hat. (b/149891163) FragmentContainerView
löst nicht mehr eineUnsupportedOperationException
aus, wenn in der Layoutvorschau der falsche Konstruktor verwendet wird. (b/149707833)
Version 1.2.2
Version 1.2.2
19. Februar 2020
androidx.fragment:fragment:1.2.2
, androidx.fragment:fragment-ktx:1.2.2
und androidx.fragment:fragment-testing:1.2.2
werden losgelassen. Version 1.2.2 enthält diese Commits.
Neue Lint-Prüfungen
- Lint schlägt vor,
viewLifecycleOwner
alsLifecycleOwner
für Aufrufe vonOnBackPressedDispatcher
inonCreateView()
,onViewCreated()
undonActivityCreated()
zu verwenden. (b/142117657) - Es wurde eine neue Lint-Prüfung hinzugefügt, die bestätigt, dass Sie bei Verwendung des
fragment-testing
-Artefakts die richtigedebugImplementation
verwenden. (b/141500106) - Für alle Fragment-APIs, die sowohl ein
get
- als auch einrequire
-Äquivalent enthalten, wird jetzt empfohlen, die zugehörigenrequire___()
-Methoden zu verwenden, um aussagekräftigere Fehlermeldungen zu erhalten, anstattcheckNotNull(get___())
,requireNonNull(get___())
oderget___()!!
. (aosp/1202883)
Fehlerkorrekturen
- Die ProGuard-Dateien für Fragmente wurden korrigiert, um R8-Warnungen zu vermeiden (b/148963981)
- Die vorhandene Lint-Prüfung wurde verbessert. Bei Verwendung von
observe
wird jetzt auch dielivedata-ktx
-Erweiterungsmethode vonobserve
berücksichtigt.viewLifecycleOwner
(b/148996309) - Die Formatierung vieler Lint-Prüfungen wurde korrigiert (aosp/1157012)
Externe Beiträge
- Vielen Dank an Zac Sweers für die
require___()
-Lint-Prüfungen im Namen von Slack. (aosp/1202883)
Version 1.2.1
Version 1.2.1
5. Februar 2020
androidx.fragment:fragment:1.2.1
, androidx.fragment:fragment-ktx:1.2.1
und androidx.fragment:fragment-testing:1.2.1
werden losgelassen. Version 1.2.1 enthält diese Commits.
Fehlerkorrekturen
- Der Standardkonstruktor von Fragmenten, die über die Methoden
add
undreplace
hinzugefügt wurden und eineClass
-Instanz (oder die reifierten Kotlin-Versionen) annehmen, wird jetzt von ProGuard beibehalten. (b/148181315) FragmentStatePagerAdapter
undFragmentPagerAdapter
fangen keine Ausnahmen mehr ab, die vonFragmentManager
beim Ausführen vonfinishUpdate()
ausgelöst werden. (aosp/1208711)- Ein Problem wurde behoben, durch das
FragmentManager.findFragment()
nicht mit Fragmenten funktionierte, die über das<fragment>
-Tag hinzugefügt wurden. (b/147784323) - Für Fragmente, die mit dem
<fragment>
-Tag aufgebläht werden, wird im Layout jetzt immer zuerstonInflate()
und dannonCreate()
aufgerufen. (aosp/1215856) - Wenn
toString()
auf einerFragmentManager
-Instanz aufgerufen wird, wird keineNullPointerException
mehr geworfen, wenn die Aktivität bereits zerstört wurde. (b/148189412)
Änderungen an Abhängigkeiten
- Die Fragmente
1.2.1
hängen jetzt vom Lifecycle ViewModel SavedState2.2.0
ab.
Version 1.2.0
Version 1.2.0
22. Januar 2020
androidx.fragment:fragment:1.2.0
, androidx.fragment:fragment-ktx:1.2.0
und androidx.fragment:fragment-testing:1.2.0
werden losgelassen. Version 1.2.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.1.0
- FragmentContainerView:
FragmentContainerView
ist der dringend empfohlene Container für dynamisch hinzugefügte Fragmente und ersetzt die Verwendung vonFrameLayout
oder anderen Layouts. Es unterstützt dieselbenclass
-,android:name
- und optionalenandroid:tag
-Flags wie das<fragment>
-Tag. Dieses anfängliche Fragment wird jedoch mit einem normalenFragmentTransaction
hinzugefügt, anstatt mit dem von<fragment>
verwendeten benutzerdefinierten Codepfad. onDestroyView()
-Timing: Fragmente warten jetzt, bis die Ausstiegsanimationen, Framework-Übergänge und AndroidX-Übergänge (bei Verwendung von Transition1.3.0
) abgeschlossen sind, bevoronDestroyView()
aufgerufen wird.- Klassenbasierte
add()
undreplace()
: Es wurden neue Überladungen vonadd()
undreplace()
fürFragmentTransaction
hinzugefügt, die eineClass<? extends Fragment>
und optional eineBundle
von Argumenten annehmen. Bei diesen Methoden wird mithilfe vonFragmentFactory
eine Instanz des hinzuzufügenden Fragments erstellt. Kotlin-Erweiterungen, die reified Typen verwenden (z. B.fragmentTransaction.replace<YourFragment>(R.id.container)
), wurden ebenfalls zufragment-ktx
hinzugefügt. - Integration von Lifecycle ViewModel SavedState:
SavedStateViewModelFactory
ist jetzt die Standard-Factory, die bei Verwendung vonby viewModels()
,by activityViewModels()
, demViewModelProvider
-Konstruktor oderViewModelProviders.of()
mit einem Fragment verwendet wird. - Neue Lint-Prüfungen: Es wurde eine neue Lint-Prüfung hinzugefügt, die dafür sorgt, dass Sie
getViewLifecycleOwner()
verwenden, wenn SieLiveData
ausonCreateView()
,onViewCreated()
oderonActivityCreated()
beobachten. getFragmentManager()
wird eingestellt: Die MethodengetFragmentManager()
undrequireFragmentManager()
für Fragmente wurden eingestellt und durch eine einzelne MethodegetParentFragmentManager()
ersetzt, die den nicht nullwertigenFragmentManager
zurückgibt, dem das Fragment hinzugefügt wird. MitisAdded()
können Sie prüfen, ob ein Aufruf sicher ist.- Einstellung von
FragmentManager.enableDebugLogging()
: Die statische MethodeFragmentManager.enableDebugLogging
wurde eingestellt. FragmentManager berücksichtigt jetztLog.isLoggable()
für das TagFragmentManager
. So können Sie entwederDEBUG
- oderVERBOSE
-Logging aktivieren, ohne Ihre App neu kompilieren zu müssen.
Bekannte Probleme
- Fragmente, auf die nur über das
class
- oderandroid:name
-Attribut in einemFragmentContainerView
verwiesen wird, werden von ProGuard nicht automatisch beibehalten. Sie müssen daher für jede Fragmentklasse manuell eine Beibehaltungsregel hinzufügen. (b/142601969) - Wenn du ein
NavHostFragment
mitclass
oderandroid:name
in XML mitFragmentContainerView
hinzufügst, kannst du inonCreate()
deiner Aktivität keinfindNavController()
verwenden. (b/142847973)
Version 1.2.0-rc05
8. Januar 2020
androidx.fragment:fragment:1.2.0-rc05
, androidx.fragment:fragment-ktx:1.2.0-rc05
und androidx.fragment:fragment-testing:1.2.0-rc05
werden losgelassen. Version 1.2.0-rc05 enthält diese Commits.
Fehlerkorrekturen
- Eine Regression im Fragment
1.2.0-rc04
bei Verwendung des<fragment>
-Tags wurde behoben, die dazu führte, dassonViewCreated()
beim Löschen von Aktivitäten fälschlicherweise aufgerufen wurde. (b/146290333) - Bei Fragmenten, die mit dem
<fragment>
-Tag hinzugefügt wurden, wird die Nichtkonfiguration jetzt richtig gelöscht, auch wenn sie nur manchmal im Layout enthalten sind (z.B. nur im Querformat). Daher werden diese Fragmente jetzt korrekt zuCREATED
verschoben, auch wenn sie sich nicht in Ihrem Layout befinden, anstatt sie zu instanziieren, aber nie durch Lebenszyklusmethoden zu bewegen. (b/145769287)
Version 1.2.0-rc04
18. Dezember 2019
androidx.fragment:fragment:1.2.0-rc04
, androidx.fragment:fragment-ktx:1.2.0-rc04
und androidx.fragment:fragment-testing:1.2.0-rc04
werden losgelassen. Version 1.2.0-rc04 enthält diese Commits.
Fehlerkorrekturen
- Die Animationen für
TRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
undTRANSIT_FRAGMENT_FADE
wurden angepasst, um visuelle Probleme zu vermeiden. (b/145468417)
Version 1.2.0-rc03
4. Dezember 2019
androidx.fragment:fragment:1.2.0-rc03
, androidx.fragment:fragment-ktx:1.2.0-rc03
und androidx.fragment:fragment-testing:1.2.0-rc03
werden losgelassen. Version 1.2.0-rc03 enthält diese Commits.
Fehlerkorrekturen
- Eine unbeabsichtigte Verhaltensänderung wurde behoben, durch die entfernte Fragmente von
findFragmentById()
/findFragmentByTag()
zurückgegeben wurden, während ihre Ausstiegsanimationen/Übergänge ausgeführt wurden. (b/143982969, aosp/1167585) - Untergeordnete Fragmente werden jetzt korrekt vor ihren übergeordneten Fragmenten beendet, wenn die enthaltene Aktivität
onSaveInstanceState()
aufruft. (b/144380645) - Ein Problem wurde behoben, durch das Ansichten nach dem Pop-out eines ausgeblendeten Fragments fälschlicherweise als
INVISIBLE
gekennzeichnet wurden. (b/70793925) - Bei Übergängen für freigegebene Fragmentelemente werden jetzt auch Ansichten berücksichtigt, die gedreht, skaliert usw. wurden (b/142835261)
Aktualisierungen der Dokumentation
- Die Dokumentation zur Einstellung von
setUserVisibleHint()
wurde klarer formuliert. (b/143897055) - Die Dokumentation zu
setFragmentFactory()
undgetFragmentFactory()
wurde verbessert, um besser darauf hinzuweisen, dass die Einstellung einerFragmentFactory
auch Auswirkungen auf untergeordnete FragmentManager hat. (aosp/1170095)
Änderungen an Abhängigkeiten
- Fragmente hängen jetzt von Lifecycle
2.2.0-rc03
, Lifecycle ViewModel SavedState1.0.0-rc03
und Activity1.1.0-rc03
ab.
Version 1.2.0-rc02
7. November 2019
androidx.fragment:fragment:1.2.0-rc02
, androidx.fragment:fragment-ktx:1.2.0-rc02
und androidx.fragment:fragment-testing:1.2.0-rc02
werden losgelassen. Version 1.2.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- In Kotlin wird für die Lint-Korrektur, bei der
getViewLifecycleOwner()
verwendet wird, umLiveData
vononCreateView()
,onViewCreated()
oderonActivityCreated()
aus zu beobachten (in Fragment1.2.0-rc01
eingeführt), jetzt die Kotlin-Syntax für den Zugriff auf Eigenschaften (viewLifecycleOwner
) anstelle vongetViewLifecycleOwner()
verwendet. (aosp/1143821)
Version 1.2.0-rc01
23. Oktober 2019
androidx.fragment:fragment:1.2.0-rc01
, androidx.fragment:fragment-ktx:1.2.0-rc01
und androidx.fragment:fragment-testing:1.2.0-rc01
werden losgelassen. Version 1.2.0-rc01 enthält diese Commits.
Neue Funktionen
FragmentContainerView
unterstützt jetzt zusätzlich zuandroid:name
das Attributclass
, was der Funktionalität des<fragment>
-Tags entspricht. (b/142722242)- Es wurde eine neue Lint-Prüfung hinzugefügt, die dafür sorgt, dass Sie
getViewLifecycleOwner()
verwenden, wenn SieLiveData
vononCreateView()
,onViewCreated()
oderonActivityCreated()
aus beobachten. (b/137122478)
Fehlerkorrekturen
- Die
onDismiss
- undonCancel
-Callbacks aufDialogFragment
sorgen jetzt dafür, dass der übergebeneDialogInterface
nicht null ist und dassgetDialog()
bei der Ausführung nicht null zurückgibt. (b/141974033) FragmentContainerView
fügt jetzt das vonclass
oderandroid:name
definierte Fragment im Rahmen der Inflatierung hinzu, damitfindFragmentById()
undfindFragmentByTag()
sofort danach funktionieren. (b/142520327)- Ein
IllegalStateException
inFragmentContainerView
wurde behoben, da der Status gespeichert wurde. (b/142580713) - Ein
UnsupportedOperationException
inFragmentContainerView
wurde behoben, wenn dieFragmentContainerView
-Klasse verschleiert ist. (b/142657034)
Bekannte Probleme
- Fragmente, auf die nur über das
class
- oderandroid:name
-Attribut in einemFragmentContainerView
verwiesen wird, werden von ProGuard nicht automatisch beibehalten. Sie müssen daher für jede Fragmentklasse manuell eine Beibehaltungsregel hinzufügen. Wir haben die Lint-Regel deaktiviert, die einen Wechsel zuFragmentContainerView
vorschlägt, bis das Problem überaapt2
behoben ist. (b/142601969)
Version 1.2.0-beta02
11. Oktober 2019
androidx.fragment:fragment:1.2.0-beta02
, androidx.fragment:fragment-ktx:1.2.0-beta02
und androidx.fragment:fragment-testing:1.2.0-beta02
werden losgelassen. Version 1.2.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das die
onInflate()
des Fragments keine richtigen Attribute vonFragmentContainerView
erhielt, was zu Fehlern beiNavHostFragment
führte. (b/142421837)
Version 1.2.0-beta01
9. Oktober 2019
androidx.fragment:fragment:1.2.0-beta01
, androidx.fragment:fragment-ktx:1.2.0-beta01
und androidx.fragment:fragment-testing:1.2.0-beta01
werden losgelassen. Version 1.2.0-beta01 enthält diese Commits.
Neue Funktionen
FragmentContainerView
unterstützt das Hinzufügen eines ersten Fragments mit zusätzlicher Unterstützung für die XML-Attributeandroid:name
und optionalandroid:tag
. Im Gegensatz zum<fragment>
-Tag wird fürFragmentContainerView
ein normalesFragmentTransaction
verwendet, um das erste Fragment hinzuzufügen. Dadurch sind weitereFragmentTransaction
-Vorgänge auf dasFragmentContainerView
möglich und die Verwendung von View-Binding für das Layout. (b/139830628, b/141177981)- In Fragmenten wird jetzt eine Lint-Warnung angezeigt, die eine schnelle Lösung zum Ersetzen von
<fragment>
durchFragmentContainerView
anbietet. (b/139830056)
Fehlerkorrekturen
- Ein Problem mit
ClassCastException
bei Verwendung vonandroidx.transition
wurde behoben. (b/140680619) - Wenn Übergang
1.3.0-beta01
verwendet wird, warten Fragmente jetzt nicht nur auf Framework-Übergänge und ‑Animationen, die in Fragment1.2.0-alpha03
und Fragment1.2.0-alpha02
behoben wurden, sondern auch aufandroidx.transition
-Übergänge, bevoronDestroyView()
gesendet wird. (aosp/1119841) - Wenn du Übergang
1.3.0-beta01
verwendest, werdenandroidx.transition
-Übergänge jetzt korrekt abgebrochen, bevor neue Übergänge / Animationen im selben Container gestartet werden. (aosp/1119841) - Ein Problem bei API 17 und niedriger wurde behoben, bei dem bei Verwendung von
FragmentContainerView
Übergänge vonandroidx.transition
in der Stammansicht des Fragments nicht funktionierten. (b/140361893) - Das
fragment-testing
-Artefakt hängt jetzt von AndroidX Test1.2.0
ab, wodurch eine Inkompatibilität mit der neuesten Espresso-Version 3.2.0 behoben wird. (b/139100149) - Die Verwendung von
Log.w
im FragmentManager wurde entfernt. (aosp/1126468)
Bekannte Probleme
- Die
onInflate()
des Fragments erhalten keine richtigen Attribute vonFragmentContainerView
, was zu Fehlern wieNavHostFragment
führt. (b/142421837)
Version 1.2.0-alpha04
18. September 2019
androidx.fragment:fragment:1.2.0-alpha04
, androidx.fragment-ktx:example:1.2.0-alpha04
und androidx.fragment:fragment-testing:1.2.0-alpha04
werden losgelassen. Version 1.2.0-alpha04 enthält diese Commits.
API-Änderungen
- Die Methoden
getFragmentManager()
undrequireFragmentManager()
vonFragment
wurden eingestellt und durch eine einzelnegetParentFragmentManager()
-Methode ersetzt, die den nicht nullwertigenFragmentManager
zurückgibt, dem das Fragment hinzugefügt wird. MitisAdded()
können Sie prüfen, ob ein Aufruf sicher ist. (b/140574496) - Die statische Methode
FragmentManager.enableDebugLogging
wurde eingestellt. FragmentManager berücksichtigt jetztLog.isLoggable()
für das TagFragmentManager
. So können Sie entweder dieDEBUG
- oder dieVERBOSE
-Protokollierung aktivieren, ohne Ihre App neu zu kompilieren. (aosp/1116591)
Fehlerkorrekturen
- Fragmente werden jetzt ordnungsgemäß zerstört, während Ausstiegsanimationen für andere Fragmente ausgeführt werden. (b/140574199)
- Ein Problem wurde behoben, durch das Fragmente
Activity.findViewById()
aufriefen, wo dies zuvor nicht der Fall war. (aosp/1116431)
Version 1.2.0-alpha03
5. September 2019
androidx.fragment:fragment:1.2.0-alpha03
, androidx.fragment:fragment-ktx:1.2.0-alpha03
und androidx.fragment:fragment-testing:1.2.0-alpha03
werden losgelassen. Die in dieser Version enthaltenen Commits finden Sie hier.
API-Änderungen
FragmentContainerView
heißt jetztfinal
. (b/140133091)
Fehlerkorrekturen
FragmentContainerView
kehrt jetzt die Zeichnungsreihenfolge korrekt um, wenn Fragmente aus dem Rückstapel entfernt werden. (b/139104187)- Ein Problem wurde behoben, durch das die falsche Animation ausgeführt wurde, wenn gleichzeitig ein Fragment eingeblendet und ein neues Fragment hinzugefügt wurde. (b/111659726)
- In Fragmenten wird jetzt nicht nur auf Animationen gewartet, bevor
onDestroyView()
gesendet wird, sondern auch auf Übergänge (was in Fragment1.2.0-alpha02
behoben wurde). (b/138741697)
Version 1.2.0-alpha02
7. August 2019
androidx.fragment:fragment:1.2.0-alpha02
, androidx.fragment:fragment-ktx:1.2.0-alpha02
und androidx.fragment:fragment-testing:11.2.0-alpha02
werden freigegeben. Die in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
SavedStateViewModelFactory
ist jetzt die Standard-Fabrik, die bei Verwendung vonby viewModels()
,by activityViewModels()
, demViewModelProvider
-Konstruktor oderViewModelProviders.of()
mit einerFragment
verwendet wird. (b/135716331)- Die Standardanimationen bei Verwendung von
TRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
,TRANSIT_FRAGMENT_FADE
mitsetTransition
auf einemFragmentTransaction
wurden aktualisiert, damit sie den Animationen entsprechen, die für Aktivitäten auf Android 10-Geräten verwendet werden. (aosp/1012812, aosp/1014730)
API-Änderungen
FragmentContainerView
wird als dringend empfohlener Container für dynamisch hinzugefügte Fragmente eingeführt und ersetzt die Verwendung vonFrameLayout
usw., da damit Probleme mit der Z-Reihenfolge von Animationen und Fenster-Insets behoben werden, die an Fragmente gesendet werden. (b/37036000, aosp/985243, b/136494650)- Es wurde eine statische
FragmentManager.findFragment(View)
-Methode hinzugefügt, um das enthaltene Fragment aus einer Ansicht abzurufen, die durch ein Fragment aufgebläht wurde. Infragment-ktx
ist auch eine Kotlin-Erweiterung verfügbar. (aosp/1090757) - Es wurden neue Überladungen von
add()
undreplace()
fürFragmentTransaction
hinzugefügt, die einenClass<? extends Fragment>
und optional eineBundle
von Argumenten annehmen. Bei diesen Methoden wird mithilfe vonFragmentFactory
eine Instanz des hinzuzufügenden Fragments erstellt. Kotlin-Erweiterungen, die reified Typen verwenden (z. B.fragmentTransaction.replace<YourFragment>(R.id.container)
), wurden ebenfalls zufragment-ktx
hinzugefügt. (b/126124987) @MainThread
-Anmerkungen wurden denFragment
-Lebenszyklus-Callbacks hinzugefügt. (b/127272564)- Die APIs für Breadcrumb-Titel auf
FragmentTransaction
undFragmentManager.BackStackEntry
wurden eingestellt. (b/138252944) - Die Methode
setTransitionStyle
aufFragmentTransaction
wurde eingestellt. (aosp/1011537) - Viele der Methoden in
FragmentManager
sind nicht mehrabstract
.FragmentManager
selbst bleibtabstract
und sollte nicht direkt instanziiert oder erweitert werden. Sie sollten weiterhin nur eine vorhandene Instanz vongetSupportFragmentManager()
,getChildFragmentManager()
usw. abrufen.
Fehlerkorrekturen
- Fragment
1.1.0-rc04
: Verschobene Übergänge werden jetzt korrekt abgebrochen, wenn Fragmente eingeblendet wurden. (b/138251858) - Fragment
1.1.0-rc03
: Es wurde ein Problem behoben, durch das vorherige Zeitüberschreitungen nicht abgebrochen wurden, wennpostponeEnterTransition()
mehrmals mit einer Zeitüberschreitung aufgerufen wurde. (b/137797118) - Fragment
1.1.0-rc02
: Ein Absturz inFragmentPagerAdapter
undFragmentStatePagerAdapter
beim Entfernen des aktuellen Elements wurde behoben. (b/137209870) - Fragmente warten jetzt, bis Animationen abgeschlossen sind, bevor
onDestroyView()
gesendet wird. (b/136110528) - Fragmentanimationen von untergeordneten Fragmenten und deren Nachkommen werden jetzt richtig verarbeitet, wenn das übergeordnete Fragment animiert wird. (b/116675313)
- Ein Problem wurde behoben, bei dem bei der Verwendung von Übergängen für gemeinsame Elemente ein Pop- und ein Hinzufügungsvorgang kombiniert wurden.
NullPointerException
(b/120507394) - Es wurde eine Behelfslösung für
IllegalStateException
s hinzugefügt, wennFragmentPagerAdapter
undFragmentStatePagerAdapter
in Robolectric-Tests verwendet werden. (b/137201343)
Version 1.2.0-alpha01
2. Juli 2019
androidx.fragment:fragment:1.2.0-alpha01
, androidx.fragment:fragment-ktx:1.2.0-alpha01
und androidx.fragment:fragment-testing:1.2.0-alpha01
werden losgelassen. Die in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
- Der FragmentManager ruft
requestApplyInsets()
jetzt nach dem Anhängen der Ansicht des Fragments und direkt vor dem Aufrufen vononViewCreated()
auf, damit Ihre Ansicht immer die richtigen Einzüge hat. (b/135945162)
Fehlerkorrekturen
- Ein Fehler beim Pop-up einer
FragmentTransaction
, bei demsetPrimaryNavigationFragment()
vorreplace()
verwendet wurde, wurde behoben.NullPointerException
(b/134673465)
Version 1.1.0
Version 1.1.0
5. September 2019
androidx.fragment:fragment:1.1.0
, androidx.fragment:fragment-ktx:1.1.0
und androidx.fragment:fragment-testing:1.1.0
werden losgelassen. Die in dieser Version enthaltenen Commits finden Sie hier.
Wichtige Änderungen seit Version 1.0.0
- fragment-testing: Das
fragment-testing
-Artefakt enthält eineFragmentScenario
-Klasse, mit der ein Fragment isoliert getestet werden kann. Weitere Informationen finden Sie in der Dokumentation zum Testen von App-Fragmenten. - FragmentFactory: Sie können jetzt eine
FragmentFactory
auf einerFragmentManager
festlegen, um das Erstellen von Fragmentinstanzen zu verwalten. Damit entfällt die strenge Anforderung, einen Konstruktor ohne Argumente zu haben. - Kotlin-Property-Delegierte für ViewModels: Das
fragment-ktx
-Artefakt enthält jetzt zwei Kotlin-Property-Delegierte:by viewModels()
für den Zugriff auf ViewModels, die mit dem einzelnen Fragment verknüpft sind, undby activityViewModels()
für den Zugriff auf ViewModels, die auf die Aktivität beschränkt sind. - Max. Lebenszyklus: Sie können jetzt einen maximalen Lebenszyklusstatus für ein Fragment festlegen, indem Sie
setMaxLifecycle()
aufFragmentTransaction
anwenden. Dies ersetzt die jetzt eingestelltesetUserVisibleHint()
.FragmentPagerAdapter
undFragmentStatePagerAdapter
haben einen neuen Konstruktor, mit dem Sie zum neuen Verhalten wechseln können. - FragmentActivity LayoutId-Konstruktor: Unterklassen von
FragmentActivity
können jetzt optional einen Konstruktor vonFragmentActivity
aufrufen, der eineR.layout
-ID annimmt, die das Layout angibt, das als Inhaltsansicht festgelegt werden soll. Dies ist eine Alternative zum Aufrufen vonsetContentView()
inonCreate()
. Dies ändert nichts an der Anforderung, dass Ihre Unterklasse einen Konstruktor ohne Argumente haben muss. - Konstruktor „LayoutId“ für Fragmente: Unterklassen von
Fragment
können jetzt optional einen Konstruktor vonFragment
aufrufen, der eineR.layout
-ID annimmt, die das Layout angibt, das für dieses Fragment verwendet werden soll, anstattonCreateView()
zu überschreiben. Das maximierte Layout kann inonViewCreated()
konfiguriert werden. - Mit Zeitüberschreitung verschieben: Es wurde eine neue Überlastung von
postponeEnterTransition()
hinzugefügt, die eine Zeitüberschreitung hat.
Version 1.1.0-rc04
7. August 2019
androidx.fragment:fragment:1.1.0-rc04
, androidx.fragment:fragment-ktx:1.1.0-rc04
und androidx.fragment:fragment-testing:1.1.0-rc04
werden freigegeben. Die in dieser Version enthaltenen Commits finden Sie hier.
Fehlerkorrekturen
- Verschobene Übergänge werden jetzt korrekt abgebrochen, wenn Fragmente entfernt wurden. (b/138251858)
Version 1.1.0-rc03
19. Juli 2019
androidx.fragment:fragment:1.1.0-rc03
, androidx.fragment:fragment-ktx:1.1.0-rc03
und androidx.fragment:fragment-testing:1.1.0-rc03
werden freigegeben. Die in dieser Version enthaltenen Commits finden Sie hier.
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das vorherige Zeitüberschreitungen nicht abgebrochen wurden, wenn
postponeEnterTransition()
mit einer Zeitüberschreitung mehrmals aufgerufen wurde. (b/137797118)
Version 1.1.0-rc02
17. Juli 2019
androidx.fragment:fragment:1.1.0-rc02
, androidx.fragment:fragment-ktx:1.1.0-rc02
und androidx.fragment-testing:fragment:1.1.0-rc02
werden losgelassen. Die in dieser Version enthaltenen Commits finden Sie hier.
Fehlerkorrekturen
- Ein Absturz in
FragmentPagerAdapter
undFragmentStatePagerAdapter
beim Entfernen des aktuellen Elements wurde behoben. (b/137209870)
Version 1.1.0-rc01
2. Juli 2019
androidx.fragment:fragment:1.1.0-rc01
, androidx.fragment:fragment-ktx:1.1.0-rc01
und androidx.fragment:fragment-testing:1.1.0-rc01
werden losgelassen. Die in dieser Version enthaltenen Commits finden Sie hier.
Fehlerkorrekturen
- Die Sichtbarkeit von Fragmenten wird jetzt korrekt aktualisiert, wenn während des Übergangs
show()
- oderhide()
-Vorgänge verwendet werden. (b/133385058) - Ein Fehler beim Pop-up einer
FragmentTransaction
, bei demsetPrimaryNavigationFragment()
vorreplace()
verwendet wurde, wurde behoben.NullPointerException
(b/134673465)
Version 1.1.0-beta01
5. Juni 2019
androidx.fragment:fragment:1.1.0-beta01
, androidx.fragment:fragment-ktx:1.1.0-beta01
und androidx.fragment:fragment-testing:1.1.0-beta01
werden losgelassen. Die in dieser Version enthaltenen Commits finden Sie hier.
Fehlerkorrekturen
androidx.lifecycle.Lifecycle
-Callbacks (insbesondere fürSTARTED
,RESUMED
,PAUSED
,STOPPED
undDESTROYED
) für verschachtelte Fragmente sind jetzt richtig verschachtelt. (b/133497591)OnBackPressedCallback
-Instanzen, die in deronCreate()
eines Fragments registriert sind, haben jetzt Vorrang vor dem untergeordneten FragmentManager. (b/133175997)- Untergeordnete Fragmente werden nicht mehr animiert, wenn ihr übergeordnetes Fragment ersetzt wird. (b/121017790)
- Fragment-Animationen und ‑Übergänge werden jetzt bei Verwendung von
animateLayoutChanges="true"
ignoriert. Dadurch wurde ein Problem behoben, bei dem Fragmente nicht ordnungsgemäß zerstört wurden. (b/116257087)
Version 1.1.0-alpha09
16. Mai 2019
androidx.fragment:fragment:1.1.0-alpha09
, androidx.fragment:fragment-ktx:1.1.0-alpha09
und androidx.fragment:fragment-testing:1.1.0-alpha09
werden losgelassen. Die in dieser Version enthaltenen Commits finden Sie hier.
API-Änderungen
- Wenn sich das primäre Navigationsfragment ändert, erhalten Fragmente jetzt einen Rückruf an eine neue
onPrimaryNavigationFragmentChanged(boolean)
-Methode. aosp/960857
Fehlerkorrekturen
- Menüpunkte, die durch ein untergeordnetes Fragment aufgebläht wurden, werden jetzt richtig entfernt, wenn das übergeordnete Fragment entfernt wird. b/131581013
Version 1.1.0-alpha08
7. Mai 2019
androidx.fragment:fragment:1.1.0-alpha08
, androidx.fragment:fragment-ktx:1.1.0-alpha08
und androidx.fragment:fragment-testing:1.1.0-alpha08
werden losgelassen. Die in dieser Version enthaltenen Commits finden Sie hier.
Diese Version ist nicht mit den Einstellungen 1.1.0-alpha01 bis 1.1.0-alpha04 kompatibel. Wenn Sie diese Version von Fragments verwenden, aktualisieren Sie bitte auf „Preferences“ 1.1.0-alpha05.
Neue Funktionen
- Es wurde eine neue Überladung von
postponeEnterTransition()
hinzugefügt, die eine Zeitüberschreitung hat, nach der das Fragment automatischstartPostponedEnterTransition()
aufruft. b/120803208
API-Änderungen
- Wichtige Änderung: Die zuvor verworfene Methode
FragmentFactory
instantiate
, die einBundle
annahm, wurde entfernt. aosp/953856 - Funktionsgefährdende Änderung: Die Konstanten
RESUME_ONLY_CURRENT_FRAGMENT
undUSE_SET_USER_VISIBLE_HINT
inFragmentPagerAdapter
undFragmentStatePagerAdapter
wurden inBEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
undBEHAVIOR_SET_USER_VISIBLE_HINT
umbenannt. aosp/954782
Fehlerkorrekturen
- Fragmente, deren Lebenszyklus über
setMaxLifecycle()
begrenzt wurde, werden nicht mehr fortgesetzt, bevor sie ihren Endstatus erreicht haben. b/131557151 - Bei Verwendung von
setMaxLifecycle(Lifecycle.State.CREATED)
wird die Ansicht von Fragmenten ordnungsgemäß zerstört. aosp/954180
Version 1.1.0-alpha07
25. April 2019
androidx.fragment:fragment:1.1.0-alpha07
, androidx.fragment:fragment-ktx:1.1.0-alpha07
und androidx.fragment:fragment-testing:1.1.0-alpha07
werden losgelassen. Die in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
- Sie können jetzt einen maximalen Lebenszyklusstatus für ein Fragment festlegen, indem Sie
setMaxLifecycle()
aufFragmentTransaction
anwenden. Dies ersetzt die jetzt eingestelltesetUserVisibleHint()
.FragmentPagerAdapter
undFragmentStatePagerAdapter
haben einen neuen Konstruktor, mit dem Sie zum neuen Verhalten wechseln können. (b/129780800)
API-Änderungen
moveToState(STARTED)
aufFragmentScenario
kann jetzt nur noch auf Geräten mit API 24 oder höher aufgerufen werden. (b/129880016)
Verhaltensänderungen
- Aufgrund von (b/129907905) erhalten Fragmente im Backstack keinen Callback zu
onCreateView()
, wenn die Hostingaktivität neu erstellt wird.onCreateView()
wird jetzt nur aufgerufen, wenn das Fragment sichtbar wird, d.h., wenn der Rückstapel geleert wird.
Fehlerkorrekturen
- Ein Problem bei der Verwendung eines
<fragment>
-Tags in XML und descontentLayoutId
-Konstruktors vonFragmentActivity
oderAppCompatActivity
wurde behoben. (b/129907905) - Ein Problem wurde behoben, durch das Fragmente im Backstack nach einer Konfigurationsänderung nicht auf mindestens
CREATED
verschoben wurden. Dadurch wurden ViewModels und untergeordnete beibehaltene Fragmente nicht ordnungsgemäß entsorgt. (b/129593351) - Ein Absturz in
restoreSaveState
wurde behoben, der durch eine Desynchronisierung der beibehaltenen Fragmente nach dem Speichern des Instanzstatus verursacht wurde. (b/130433793) (aosp/947824) - Probleme behoben, bei denen ein
OnBackPressedCallback
, das mit einem Fragment-Lebenszyklus hinzugefügt wurde, nicht aufgerufen wurde, wenn dieFragmentManager
einen Backstack hatte. Weitere Informationen finden Sie unter androidx.activity 1.0.0-alpha07. (aosp/948209) - In Fragmenten wird
LAYER_TYPE_HARDWARE
für Animationen nicht mehr erzwungen. Wenn Sie eine spezielle Hardwareebenenanimation benötigen, legen Sie sie als Teil Ihrer Animation fest. (b/129486478)
Version 1.1.0-alpha06
3. April 2019
androidx.fragment:fragment:1.1.0-alpha06
, androidx.fragment:fragment-ktx:1.1.0-alpha06
und androidx.fragment:fragment-testing:1.1.0-alpha06
werden losgelassen. Die in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
- Von FragmentManager geworfene Ausnahmen enthalten jetzt den Namen des Fragments in der Meldung. (b/67759402)
API-Änderungen
Fragment
undFragmentActivity
enthalten jetzt einen zweiten Konstruktor, der eine@LayoutRes int
annimmt. Das ersetzt das vorherige Verhalten, bei dem die Klasse mit@ContentView
annotiert wurde. Dieser Ansatz funktioniert sowohl in App- als auch in Bibliotheksmodulen. (b/128352521)- Die
onActivityResult()
von FragmentActivity ist jetzt korrekt als@CallSuper
gekennzeichnet. (b/127971684) - Die
instantiate
-Methode der FragmentFactory, die ein Bundle als Argument annimmt, wurde eingestellt. In Apps sollte stattdessen die neueinstantiate
-Überladung verwendet werden, die kein Bundle annimmt. (b/128836103) FragmentScenario
-Methoden sind jetzt korrekt mit@StyleRes
gekennzeichnet. (aosp/924193)FragmentTabHost
wurde eingestellt. (b/127971835)getThemedContext()
von FragmentActivity wurde entfernt. (aosp/934078)
Fehlerkorrekturen
- Behebung einer Regression in 1.1.0-alpha05, die dazu führte, dass das eingehende Fragment auf dem Bildschirm flackerte. (b/129405432)
- Ein Problem wurde behoben, durch das das primäre Navigationsfragment nach einer Reihe von Vorgängen vom Typ „popBackStack+replace+popBackStack“ verloren ging. (b/124332597)
- Ein Problem wurde behoben, das beim Wiederherstellen des Fragmentstatus bei Verwendung von
@ContentView
-Konstruktoren in Ihrer Aktivität auftrat. (b/127313094) - Die Logik von
setTargetFragment()
wurde korrigiert, wenn ein vorhandenes Zielfragment durch ein Fragment ersetzt wird, das noch nicht mit dem FragmentManager verbunden ist. (aosp/932156)
Version 1.1.0-alpha05
13. März 2019
androidx.fragment:fragment:1.1.0-alpha05
, androidx.fragment:fragment-ktx:1.1.0-alpha05
und androidx.fragment:fragment-testing:1.1.0-alpha05
werden losgelassen. Eine vollständige Liste der Commits in dieser Version finden Sie hier.
Neue Funktionen
@ContentView
Anmerkungsabfragen werden jetzt im Cache gespeichert (b/123709449)
Geändertes Verhalten
- Wenn
remove()
,hide()
,show()
,detach()
undsetPrimaryNavigationFragment()
mit einem Fragment aufgerufen werden, das an einem anderen FragmentManager angehängt ist, wird jetzt eineIllegalStateException
ausgegeben, anstatt dass der Vorgang geräuschlos fehlschlägt (aosp/904301)
Fehlerkorrekturen
onNewIntent
fürFragmentActivity
ist jetzt korrekt mit@CallSuper
gekennzeichnet (b/124120586)- Ein Problem wurde behoben, durch das die
onDismiss()
vonDialogFragment
bei Verwendung vongetDialog().dismiss()
odergetDialog().cancel()
zweimal aufgerufen werden konnte (b/126563750)
Version 1.1.0-alpha04
7. Februar 2019
androidx.fragment:fragment 1.1.0-alpha04
, androidx.fragment:fragment-ktx 1.1.0-alpha04
und androidx.fragment:fragment-testing 1.1.0-alpha04
werden losgelassen.
Neue Funktionen
- Es wurde Unterstützung für die
@ContentView
-Klassenannotation hinzugefügt, mit der Sie angeben können, welche Layout-XML-Datei aufgebläht werden soll, anstattonCreateView()
zu überschreiben. Wir empfehlen, sich ähnliche Arbeiten inonViewCreated()
anzusehen. (aosp/837619) fragment-testing
ist jetzt vonandroidx.test:core-ktx
1.1.0 Stable (b/121209673) abhängig- Sie können jetzt
openActionBarOverflowOrOptionsMenu
mitFragmentScenario
verwenden, um von Fragmenten gehostete Optionsmenüs zu testen (b/121126668)
API-Änderungen
- Die Methode
requireArguments()
wurde hinzugefügt, die eine@NonNull Bundle
zurückgibt oder eineIllegalStateException
wirft (b/121196360) - Hinweis hinzugefügt, dass
getLifecycle()
,getViewLifecycleOwner()
undgetViewLifecycleOwnerLiveData()
nicht überschrieben werden sollten und in einem zukünftigen Release endgültig festgelegt werden. Wenn Sie diese Methode derzeit überschreiben, stellen Sie bitte eine Funktionsanfrage. (aosp/880714) - Hinweis hinzugefügt, dass
getViewModelStore()
nicht überschrieben werden sollte und in einem zukünftigen Release endgültig festgelegt wird. Wenn Sie diese Methode derzeit überschreiben, stellen Sie bitte eine Funktionsanfrage. (aosp/880713) - Ein Problem mit der Binärkompatibilität mit früheren Releases von Fragments wurde behoben. (aosp/887877) (aosp/889834)
Fehlerkorrekturen
- Zielfragmente werden korrekt gelöscht, wenn Sie
null
ansetTargetFragment()
übergeben. (aosp/849969) - Ein Problem wurde behoben, durch das Zielfragmente in oder nach
onDestroy()
manchmal nicht verfügbar waren. (b/122312935) - onDismiss() von DialogFragment wird jetzt vor
onDestroy()
aufgerufen. (aosp/874133) (aosp/890734)
Version 1.1.0-alpha03
17. Dezember 2018
Neue Funktionen
- Fragment implementiert jetzt
BundleSavedStateRegistryOwner
und ist von der neu veröffentlichten SavedState-Bibliothek abhängig [aosp/824380] - Es wurde ein
by activityViewModels
Kotlin-Property-Delegate hinzugefügt, um ViewModels abzurufen, die mit der enthaltenen Aktivität verknüpft sind [b/119050253] - Der
by viewModels
-Kotlin-Property-Delegate wurde erweitert, um eine optionale Lambdamethode zum Abrufen desViewModelStoreOwner
zu akzeptieren. So können Sie das übergeordnete Fragment oder ein anderes benutzerdefiniertesViewModelStoreOwner
mit Code wieval viewModel: MyViewModel by viewModels(::requireParentFragment)
übergeben. [b/119050253]
API-Änderungen
- Mit
FragmentScenario
können Sie jetzt ein Design angeben, z. B.Theme.AppCompat
[b/119054431]. Dies ist eine funktionsgefährdende Änderung. - Die Methode
requireView()
wurde hinzugefügt, die eine@NonNull View
zurückgibt oder eineIllegalStateException
wirft. [b/120241368] - Es wurde eine
requireParentFragment()
-Methode hinzugefügt, die eine@NonNull Fragment
zurückgibt oder eineIllegalStateException
wirft [b/112103783]
Fehlerkorrekturen
- Fehler IllegalStateException: Fehler beim Speichern des Status behoben b/120814739
- Fragmente, die aus dem gespeicherten Instanzstatus wiederhergestellt werden, erhalten jetzt immer einen nicht nullwertigen
Bundle
. [b/119794496] - Entfernte Fragmente verwenden ihr
Lifecycle
-Objekt nicht mehr, wenn sie wieder hinzugefügt werden [b/118880674]
Version 1.1.0-alpha02
3. Dezember 2018
Neue Funktionen
- Mit den Kotlin-Erweiterungen von FragmentScenario können Sie jetzt ein Lambda für die Fragmenterstellung verwenden, anstatt eine
FragmentFactory
-Instanz zu übergeben. (aosp/812913)
Fehlerkorrekturen
- Behoben wurde eine IllegalStateException bei der Verwendung verschachtelter Fragmente im Backstack (b/119256498).
- Absturz bei Verwendung von
FragmentScenario.recreate()
mit einemFragmentFactory
behoben (aosp/820540) - Ein Problem wurde behoben, durch das nach dem Entfernen eines Fragments nicht mehr auf Zielfragmente zugegriffen werden konnte (aosp/807634)
Version 1.1.0-alpha01
5. November 2018
Das ist die erste Version des fragment-testing
-Artefakts und von FragmentScenario
, die auf den APIs von androidx.test:core basieren. Weitere Informationen finden Sie in der Dokumentation zu Fragmenttests.
Neue Funktionen
- Neue Klasse „FragmentScenario“ zum Testen von Fragmenten im Alleingang.
- Sie können jetzt für jeden
FragmentManager
einenFragmentFactory
festlegen, um zu steuern, wie neue Fragmentinstanzen erstellt werden. - Es wurde ein neuer
by viewModels()
Kotlin-Property Delegate zum Abrufen von ViewModels aus einem Fragment hinzugefügt. - Ausstehende Eingabeereignisse (z. B. Klicks) werden jetzt in der
onStop()
eines Fragments abgebrochen.
API-Änderungen
- Die Annotations zur Nullbarkeit wurden in der Fragment API deutlich erweitert.
Fehlerkorrekturen
- Behebung eines Problems, das dazu führte, dass Fragmentvorgänge in LiveData fehlschlugen(b/77944637)
Bekannte Probleme
- Auf Zielfragmente kann nicht zugegriffen werden, nachdem ein Fragment aus dem FragmentManager entfernt wurde.
fragment-testing
hängt vonandroidx.test:core:1.0.0-beta01
statt von der korrektenandroidx.test:core:1.0.0
ab.