Content(dat = dat, uiState = uiState, onUiEvent = onUiEvent)
Sobald sich uiState.singleId ändert, wird der „dat“-Wert von einem Ansichtsmodell neu berechnet und alles wird neu zusammengestellt. Die Inhaltsänderung sollte animiert werden, indem der alte Inhalt nach links herausgeschoben und der neue von rechts hineingeschoben wird.
Ich habe es folgendermaßen implementiert:
Code: Select all
AnimatedContent(
targetState = uiState.singleId,
transitionSpec = {
if ( targetState > initialState )
slideInHorizontally { it } +fadeIn() togetherWith slideOutHorizontally { -it }
else
slideInHorizontally { -it } +fadeIn() togetherWith slideOutHorizontally { it }
},
label = "Fade Content",
) { it ->
Content(dat = dat, uiState = uiState, onUiEvent = onUiEvent) }
Die Sache ist, die Animation scheint wie erwartet zu funktionieren.
Übersehe ich etwas über die Verwendung des Zielzustands im Inhalts-Lambda?
Mobile version