OnValueChangeFinished ползунка не запускает анимацию камеры Mapbox, когда я использую подъем состоянияAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 OnValueChangeFinished ползунка не запускает анимацию камеры Mapbox, когда я использую подъем состояния

Сообщение Anonymous »

У меня есть ползунок, который изменяет высоту поля карты камеры при перемещении курсора. Курсор также динамически перемещается, когда вы в противном случае меняете высоту камеры.
Когда положение ползунка находится внутри компонуемого объекта. Все работает нормально.
С другой стороны, когда я использую подъем положения ползунка, анимация камеры не работает при перемещении курсора.
Я заметил это это связано с перекомпозицией слайдера. Когда я ставлю себя в первый случай, когда все работает, выхожу из главного экрана и возвращаюсь обратно, ползунок больше не запускает анимацию камеры.
Откуда проблема?
@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
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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