У меня есть ползунок, который изменяет высоту поля карты камеры при перемещении курсора. Курсор также динамически перемещается, когда вы в противном случае меняете высоту камеры.
Когда положение ползунка находится внутри компонуемого объекта. Все работает нормально.
С другой стороны, когда я использую подъем положения ползунка, анимация камеры не работает при перемещении курсора.
Я заметил это это связано с перекомпозицией слайдера. Когда я ставлю себя в первый случай, когда все работает, выхожу из главного экрана и возвращаюсь обратно, ползунок больше не запускает анимацию камеры.
Откуда проблема?
@Composable fun VerticalSlider(
dataMap: DataMap,
cameraChanged: Flow,
modifier: Modifier = Modifier,
enabled: Boolean = true,
valueRange: ClosedFloatingPointRange = 8f..22f,
steps: Int = 0,
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
colors: SliderColors = SliderDefaults.colors(), ) {
Column {
var sliderPosition by remember{ mutableFloatStateOf(22.0f) }
LaunchedEffect(Unit) {// the cursor moves dynamically when you otherwise change the
camera altitude
cameraChanged.collect {
sliderPosition = 30 - it.cameraState.zoom.toFloat()
}
}
Slider(
value = sliderPosition,
onValueChange = {
sliderPosition = it
},
colors = colors,
interactionSource = interactionSource,
onValueChangeFinished = {
var altitude = 30 - sliderPosition
val cameraOptions = CameraOptions.Builder()
.zoom(altitude.toDouble())
.build()
val animationOptions = MapAnimationOptions.Builder().duration(1000).build()
dataMap.mapboxMap.flyTo(cameraOptions, animationOptions)
},
valueRange = valueRange,
steps = steps,
enabled = enabled,
modifier = Modifier
.graphicsLayer {
rotationZ = 270f
transformOrigin = TransformOrigin(0f, 0f)
}
.layout { measurable, constraints ->
val placeable = measurable.measure(
Constraints(
minWidth = constraints.minHeight,
maxWidth = constraints.maxHeight,
minHeight = constraints.minWidth,
maxHeight = constraints.maxHeight,
)
)
layout(placeable.height, placeable.width) {
placeable.place(-placeable.width, 0)
}
}
.then(modifier)
.width(400.dp)// c'est en fait la longueur
.height(100.dp)// et ici c'est la largeur
)
}
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... e-mapbox-c
OnValueChangeFinished ползунка не запускает анимацию камеры Mapbox, когда я использую подъем состояния ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ярлык ползунка Tkinter. Я не знаю, как удалить метку ползунка или изменить его текст.
Anonymous » » в форуме Python - 0 Ответы
- 49 Просмотры
-
Последнее сообщение Anonymous
-