Android 如何将viewModel范围限定为与NavHost无关的对话框可组合函数

Android 如何将viewModel范围限定为与NavHost无关的对话框可组合函数,android,android-jetpack-compose,Android,Android Jetpack Compose,我使用的是Android compose和view模型,我有一个ViewModel,它的作用域是一个单一的可组合函数,它是一个底部工作表视图,这是使用膨胀的,我使用将ViewModel注入可组合函数中,但我有一个问题,ViewModel函数在我再次打开底部工作表时返回之前创建的同一个ViewModel实例 换句话说,如何将ViewModel范围限定为与NavHost和Backback无关的对话框可组合函数 @Composable fun ComposableExample( ) {

我使用的是Android compose和view模型,我有一个ViewModel,它的作用域是一个单一的可组合函数,它是一个底部工作表视图,这是使用膨胀的,我使用将ViewModel注入可组合函数中,但我有一个问题,
ViewModel
函数在我再次打开底部工作表时返回之前创建的同一个ViewModel实例

换句话说,如何将ViewModel范围限定为与NavHost和Backback无关的对话框可组合函数


@Composable
 fun ComposableExample(
) {
    val viewModel: ExampleViewModel= viewModel() // createdOnlyOnce and always returns old instance
}
根据,Compose不提供任何机制将ViewModels范围限定到单个
@Composable
-您在
NavHost
目的地之外创建的任何ViewModels范围限定到包含您的
ComposeView
/的活动/片段,您在其中调用
setContent
,因此,在您的Compose层次结构的整个生命周期中都存在—这就是为什么您总是返回相同的实例

请注意,Navigation Compose具有针对和的现有功能请求,这将为这些类型的目的地带来相同的ViewModels范围和状态。你应该在这些问题上加星号,以获得更新并表明你的兴趣(这有助于确定工作的优先级)