Мультитач: панорамирование, масштабирование, вращение.

Чтобы обнаружить мультитач-жесты, используемые для панорамирования, масштабирования и вращения, вы можете использовать модификатор transformable . Этот модификатор сам по себе не преобразует элементы, а только распознает жесты.

@Composable
private fun TransformableSample() {
   
// set up all transformation states
   
var scale by remember { mutableStateOf(1f) }
   
var rotation by remember { mutableStateOf(0f) }
   
var offset by remember { mutableStateOf(Offset.Zero) }
   
val state = rememberTransformableState { zoomChange, offsetChange, rotationChange ->
        scale
*= zoomChange
        rotation
+= rotationChange
        offset
+= offsetChange
   
}
   
Box(
       
Modifier
           
// apply other transformations like rotation and zoom
           
// on the pizza slice emoji
           
.graphicsLayer(
                scaleX
= scale,
                scaleY
= scale,
                rotationZ
= rotation,
                translationX
= offset.x,
                translationY
= offset.y
           
)
           
// add transformable to listen to multitouch transformation events
           
// after offset
           
.transformable(state = state)
           
.background(Color.Blue)
           
.fillMaxSize()
   
)
}

Элемент пользовательского интерфейса, реагирующий на мультитач-жесты — панорамирование, масштабирование и вращение.

Если вам нужно объединить масштабирование, панорамирование и вращение с другими жестами, вы можете использовать детектор PointerInputScope.detectTransformGestures .

{% дословно %}

Пока рекомендаций нет.

Попытайтесь в свой аккаунт Google.

{% дословно %}