Compose Navigation повторно создает экземпляр WebView внутри экрана при наличии NavigationBar.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Compose Navigation повторно создает экземпляр WebView внутри экрана при наличии NavigationBar.

Сообщение Anonymous »

В настоящее время я тестирую навигацию по созданию в соответствии с документацией. Рассмотрите возможность использования двух экранов: Главная и Интернет. Навигация используется следующим образом:

Код: Выделить всё

@Composable
fun ButtonNavigationApp() {
val navController = rememberNavController()

Scaffold(
bottomBar = { BottomNavigationBar(navController) }
) { innerPadding ->
NavHost(
navController = navController,
startDestination = "Home"
) {
addHomeScreen()
addWebScreen()
}
}
}
Главный экран:

Код: Выделить всё

fun NavGraphBuilder.addHomeScreen() {
composable("Home") {
Text("Home is here")
}
}
Веб-экран:

Код: Выделить всё

fun NavGraphBuilder.addWebScreen() {
composable("Web") {
AndroidView(
onReset = {}, // Add to reuse the view as documentation says.
factory = { context ->
WebView(context).apply {
// Initializing web-view here
}
},
update = { it.loadUrl("google.com") }
)
}

}
Панель навигации:

Код: Выделить всё

@Composable
fun BottomNavigationBar(navController: NavHostController) {
...

NavigationBar {

NavigationBarItem(
...
onclick = {
navController.navigate("Home") {
popUpTo(navController.graph.startDestinationId) { saveState = true }
launchSingleTop = true
restoreState = true
}
}
...
)

NavigationBarItem(
...
onclick = {
navController.navigate("Web") {
popUpTo(navController.graph.startDestinationId) { saveState = true }
launchSingleTop = true
restoreState = true
}
}
...
)
}
}

Проблема: При переходе от Главного к экрану Интернет URL-адрес загружается должным образом. Если нажать Главная, а затем нажать Интернет, URL-адрес загружается снова (хотя модели представления сохраняются).
Я проверил и обнаружил, что экран создания сообщения воссоздается, поэтому веб-представление воссоздается снова. Как я могу заставить навигацию не создавать еще один экземпляр веб-представления?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -navigatio
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»