Маркер Jetpack Compose Map уничтожается при повторном щелчке по нижнему элементу навигацииAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Маркер Jetpack Compose Map уничтожается при повторном щелчке по нижнему элементу навигации

Сообщение Anonymous »

Сейчас я работаю над приложением для Android, используя Jetpack Compose и добавляя карты с маркерами. Поначалу кажется, что все работает хорошо: карта загружается правильно, маркеры отображаются так, как ожидалось. Однако я столкнулся с проблемой, возникающей при повторном щелчке по нижнему элементу навигации.
При повторном щелчке по нижнему элементу навигации кажется, что карта и связанные с ней маркеры уничтожаются и перезагружаются. Это приводит к потере маркеров на карте. Я попытался решить эту проблему, используя RememberMarkerPosition и RememberCameraPosition, чтобы сохранить состояние маркеров и положение камеры, но, к сожалению, этот подход не решил проблему.
Я подозреваю, что в Jetpack Compose или библиотеке карт могут быть некоторые базовые сложности управления жизненным циклом или состоянием, которые я не до конца понимаю.
Кто-нибудь еще сталкивался с подобной проблемой при работе с Jetpack Составление и карты, где маркеры удаляются при повторном нажатии на нижний элемент навигации? Если да, то какие стратегии или методы вы использовали, чтобы гарантировать сохранение маркеров даже после таких взаимодействий с пользовательским интерфейсом? Я был бы очень признателен за любую информацию, примеры кода или рекомендации, которые помогут мне решить эту проблему.
Вот упрощенная версия кода, который я использую для справки:

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

@Composable
fun LocationMap(latLng: LatLng) {
val mapProperties by remember {
mutableStateOf(
MapProperties(maxZoomPreference = 30f, minZoomPreference = 5f)
)
}
val mapUiSettings by remember {
mutableStateOf(
MapUiSettings(mapToolbarEnabled = false)
)
}
GoogleMap(properties = mapProperties, uiSettings = mapUiSettings, cameraPositionState = rememberCameraPositionState {
position = CameraPosition.fromLatLngZoom(
com.google.android.gms.maps.model.LatLng(
latLng.latitude,
latLng.longitude
), 15f
)
}) {
Marker(
state = MarkerState(
position = com.google.android.gms.maps.model.LatLng(
latLng.latitude,
latLng.longitude
)
),
title = "Title"
)
}
}
Кроме того, я использую последнюю версию библиотеки создания карт.
В моей функции щелчка по элементу навигации существует saveState, как показано ниже:

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

onClick = {navController.navigate(item.screen_route) {
navController.graph.startDestinationRoute?.let { screen_route ->
popUpTo(screen_route) {
saveState = true
}
}
launchSingleTop = true
restoreState = true
}
}
Спасибо за любую помощь, которую вы можете оказать мне, чтобы помочь мне решить эту проблему с сохранением маркера после повторного щелчка по нижнему элементу навигации в Jetpack Compose.

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

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

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

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

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

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

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