在一个带有BottomNavigationView和导航组件的Jetpack Compose应用程序中,我对activity中的底部栏进行了通常的设置:
val navHostFragment =
supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController
navigationView.setupWithNavController(navController)在每个屏幕中,我都使用了一个可组合的TopAppBar。不幸的是,在添加setupWithNavController调用后,TopAppBar开始在所有导航栏目标中闪烁(但不是在更深的目标中)。
如何修复闪烁?
发布于 2021-08-21 13:27:43
我也有同样的问题。让我惊讶的是,将androidx.navigation:navigation-compose version降级到2.4.0-alpha04是有帮助的。
发布于 2021-03-26 08:58:39
我无法确切地回答您如何修复闪烁,但我可以告诉您,在Jetpack Compose中使用导航组件TopBars和BottomBars的推荐方法是使用Scaffold component和navigation-compose component。
合成导航组件依赖项:
// Navigation
implementation "androidx.navigation:navigation-compose:1.0.0-alpha09"它仍然处于alpha阶段,但到目前为止,它工作得非常好。只需保持对所有更新的更新。
示例用法:
@Composable
fun App() {
val navController = rememberNavController()
Scaffold(
topBar = {
TopAppBar {
Box(modifier = Modifier.fillMaxWidth(), contentAlignment = Alignment.Center) {
Text(text = "App Title")
}
}
},
bottomBar = {
BottomAppBar {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceEvenly,
verticalAlignment = Alignment.CenterVertically
) {
TextButton(onClick = { navController.navigate("home") }) {
Text(text = "Home")
}
TextButton(onClick = { navController.navigate("favorites") }) {
Text(text = "Favorites")
}
TextButton(onClick = { navController.navigate("profile") }) {
Text(text = "Profile")
}
}
}
}
) {
NavHost(navController, startDestination = "home") {
composable("home") {
Home()
}
composable("favorites") {
Favorites()
}
composable("profile") {
Profile()
}
}
}
}https://stackoverflow.com/questions/66638286
复制相似问题