androidx.lifecycle.viewmodel.navigation3


Top-level functions summary

NavEntryDecorator<Any>
ViewModelStoreNavEntryDecorator(
    viewModelStore: ViewModelStore,
    shouldRemoveStoreOwner: () -> Boolean
)

Provides the content of a NavEntry with a ViewModelStoreOwner and provides that ViewModelStoreOwner as a LocalViewModelStoreOwner so that it is available within the content.

Cmn
NavEntryDecorator<Any>
@Composable
rememberViewModelStoreNavEntryDecorator(
    viewModelStoreOwner: ViewModelStoreOwner,
    shouldRemoveStoreOwner: () -> Boolean
)

Returns a ViewModelStoreNavEntryDecorator that is remembered across recompositions.

Cmn

Top-level functions

ViewModelStoreNavEntryDecorator

fun ViewModelStoreNavEntryDecorator(
    viewModelStore: ViewModelStore,
    shouldRemoveStoreOwner: () -> Boolean
): NavEntryDecorator<Any>

Provides the content of a NavEntry with a ViewModelStoreOwner and provides that ViewModelStoreOwner as a LocalViewModelStoreOwner so that it is available within the content.

This requires the usage of androidx.navigation3.runtime.SavedStateNavEntryDecorator to ensure that the NavEntry scoped ViewModels can properly provide access to androidx.lifecycle.SavedStateHandles

Parameters
viewModelStore: ViewModelStore

The ViewModelStore that provides to NavEntries

shouldRemoveStoreOwner: () -> Boolean

A lambda that returns a Boolean for whether the store owner for a NavEntry should be cleared when the NavEntry is popped from the backStack. If true, the entry's ViewModelStoreOwner will be removed.

rememberViewModelStoreNavEntryDecorator

@Composable
fun rememberViewModelStoreNavEntryDecorator(
    viewModelStoreOwner: ViewModelStoreOwner = checkNotNull(LocalViewModelStoreOwner.current) { "No ViewModelStoreOwner was provided via LocalViewModelStoreOwner" },
    shouldRemoveStoreOwner: () -> Boolean = shouldRemoveViewModelStoreCallback()
): NavEntryDecorator<Any>

Returns a ViewModelStoreNavEntryDecorator that is remembered across recompositions.

Parameters
viewModelStoreOwner: ViewModelStoreOwner = checkNotNull(LocalViewModelStoreOwner.current) { "No ViewModelStoreOwner was provided via LocalViewModelStoreOwner" }

The ViewModelStoreOwner that provides the ViewModelStore to NavEntries

shouldRemoveStoreOwner: () -> Boolean = shouldRemoveViewModelStoreCallback()

A lambda that returns a Boolean for whether the store owner for a NavEntry should be cleared when the NavEntry is popped from the backStack. If true, the entry's ViewModelStoreOwner will be removed.