我今天开始学习Jetpack Compose,当我使用NavHost
时,遇到了渲染预览问题:
java.lang.IllegalStateException: ViewModels creation is not supported in Preview
at androidx.compose.ui.tooling.ComposeViewAdapter$FakeViewModelStoreOwner$1.getViewModelStore(ComposeViewAdapter.kt:709)
at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:103)
at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:66)
at com.example.jetpackstudy.ui.activity.BottomNavActivity$AppContentView$1$3$1.invoke(BottomNavActivity.kt:71)
at com.example.jetpackstudy.ui.activity.BottomNavActivity$AppContentView$1$3$1.invoke(BottomNavActivity.kt:70)
我的项目代码:
@Preview @Composable
fun AppContentView() {
JetPackStudyTheme {
val navController = rememberNavController()
Scaffold(topBar = {...})
}, bottomBar = {...}
}) {
Surface(color = MaterialTheme.colors.primary, modifier = Modifier.fillMaxSize()) {
NavHost(navController, startDestination = BotNavItem.Home.route) {
...
}
}
}
}
}
有没有方法可以在使用
NavHost
时修复 Android Studio 上的预览?我正在使用以下依赖项:
implementation "androidx.navigation:navigation-compose:2.4.0-alpha06"
NavHost
的存在仍会导致出现此错误。可能在构建导航图时,NavHost
构造函数需要构建一些ViewModels
助手。 - Jarrod Moldrich