Isaac Udy
09/12/2022, 10:59 AMremember state alive between calls to movableContentOf?
I currently have a situation where I am doing something like this:
val moveable = remember { moveableState { DrawAnItem() } }
if(visible) moveable.invoke()
The problem is that when “visible” gets toggled, all `remember`ed state inside DrawAnItem is reset.
However, if I do this:
val moveable = remember { moveableState { DrawAnItem() } }
if(visible) moveable.invoke()
else {
Box(modifier = Modifier.alpha(0f)) {
moveable.invoke()
}
}
the `remember`ed items are properly remembered in between calls to “visible”. This obviously isn’t a very good solution, but I’m trying to figure out how to keep a composable “alive” when I know that I’m going to render it again in the not-too-distant future.Filip Wiesner
09/12/2022, 11:10 AMDrawAnItem composable 😄 But that does not really answer your questionFilip Wiesner
09/12/2022, 11:10 AMDrawAnItem naming goes against the compose naming conventions)Isaac Udy
09/12/2022, 11:14 AMZoltan Demant
09/12/2022, 12:21 PMSaveableStateHolder.SaveableStateProvider under a given key. Maybe this is not the answer youre looking for as well, but many navigation frameworks use this approach under the hood so I thought Id at least mention it 🙂Isaac Udy
09/12/2022, 12:28 PMremember calls. I was hoping to get remember working, but I think that rememberSaveable will probably be enough.
However, rememberSaveable wasn’t working correctly for me until I moved some of my Composable logic around (where some onDispose calls were, where the SaveableStateHolder was being used, etc), but it all appears to be working now with rememberSaveable. Thanks for your help.