Kefas
07/29/2021, 4:04 AMclass ChildState {
// ....
companion object {
val Saver: Saver<ChildState,*> = // Has been defined
}
}
class ParentState(val childState: ChildState) {
// ...
companion object {
val Saver: Saver<ParentState,*> = // How to save the childState using ChildState.Saver?
}
}
tad
07/29/2021, 4:15 AMwith(ChildState.Saver) { save(childState) }
Albert Chang
07/29/2021, 4:26 AMclass ParentState(val childState: ChildState) {
// ...
companion object {
fun Saver(childState: ChildState): Saver<ParentState, *> = Saver(
save = { /* Save private data */ },
restore = { ParentState(childState) }
)
}
}
@Composable
fun rememberParentState(): ParentState {
val childState = rememberSaveable(saver = ChildState.Saver) { ChildState() }
return rememberSaveable(childState, saver = ParentState.Saver(childState)) {
ParentState(childState)
}
}
Here is a similar example.Kefas
07/29/2021, 4:40 AM