всякий раз, когда я пытаюсь перейти с экрана. Камера к экрану. imageedit < /p>
Android выбрасывает оповещение, как ниже < /p>
serializer для класса «Navbackstackentry» не обнаруживается. Обеспечение того, что класс помечен как «@serializeable», и это сериоризует. Применяется.@Composable
fun AppNav(navController: NavHostController) {
var isBottomBarVisible by remember { mutableStateOf(true) }
val viewModel : CameraScreenViewModel = viewModel()
val density = LocalDensity.current
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
Scaffold(
bottomBar = {
AnimatedVisibility(
visible = isBottomBarVisible)
) {
BottomNavBar(navController = navController)
}
}
) { innerPadding ->
NavHost(
navController = navController,
startDestination = Screen.Feed,
modifier = Modifier.padding(innerPadding),
popExitTransition = {
scaleOut(
targetScale = 0.9f,
transformOrigin = TransformOrigin(pivotFractionX = 0.5f, pivotFractionY = 0.5f)
)
},
popEnterTransition = {
EnterTransition.None
},
) {
composable{
isBottomBarVisible = true
FeedScreen()
}
composable {
isBottomBarVisible = true
SearchScreen()
}
composable {
isBottomBarVisible = true
NotificationScreen()
}
composable {
isBottomBarVisible = true
OtherScreen()
}
composable {
isBottomBarVisible = false
CameraScreen(
popBack = {
navController.popBackStack()
},
onImageCaptureNavigate = { route ->
navController.navigate(it)
},
viewModel = viewModel
)
}
composable {
ImageEditScreen(
viewModel = viewModel
)
}
}
}
}
}
< /code>
bothernavbar Composable < /strong>
Эта композиция имеет ссылку на Navbackstackentry < /p>
val vavbackstackentry by navcontroller.currentbackstackentryasstate () < /p>
@Composable
fun BottomNavBar(navController: NavHostController) {
val topLevelRoutes = listOf(
TopLevelRoute(Screen.Feed.route, Screen.Feed, R.drawable.ic_feed),
TopLevelRoute(Screen.Search.route, Screen.Search,
R.drawable.ic_search),
TopLevelRoute(Screen.Camera.route, Screen.Camera,
R.drawable.ic_camera),
TopLevelRoute(
Screen.Notification.route,
Screen.Notification,
R.drawable.ic_notification
),
TopLevelRoute(Screen.Other.route, Screen.Other, R.drawable.ic_other),
)
val navBackStackEntry by navController.currentBackStackEntryAsState()
val currentDestination = navBackStackEntry?.destination
NavigationBar(contentColor = Color.White) {
topLevelRoutes.forEachIndexed { index, item ->
NavigationBarItem(
selected = currentDestination?.hierarchy?.any {
it.hasRoute(item.route::class) } == true,
icon = {
Icon(
painter = painterResource(item.resource),
contentDescription = item.name
)
},
onClick = {
navController.navigate(item.route) {
popUpTo(navController.graph.findStartDestination().id) {
saveState = true
}
launchSingleTop = true
restoreState = true
}
},
)
}
}
}
screen (этот класс определяет все доступные маршруты)
@Serializable
sealed class Screen(val route:String){
@Serializable
object Feed : Screen("Feed")
@Serializable
object Search : Screen("Search")
@Serializable
object Notification : Screen("Notification")
@Serializable
object Other : Screen("Other")
@Serializable
object Camera : Screen("Camera")
@Serializable
object ImageEdit : Screen("ImageEdit")
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... -not-found
Сериализатор для класса «Navbackstackentry» не найден ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
InvalidDefinitionException В Java для универсального класса не найден сериализатор
Anonymous » » в форуме JAVA - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
InvalidDefinitionException В Java для универсального класса не найден сериализатор
Anonymous » » в форуме JAVA - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-