【发布时间】:2021-07-30 05:12:44
【问题描述】:
Android 视图可以有一个触摸代理来增加元素的可点击区域,而不增加它的填充。 jetpack compose 中有类似的东西吗?我找不到可以做到这一点的修饰符。
【问题讨论】:
标签: android android-jetpack-compose
Android 视图可以有一个触摸代理来增加元素的可点击区域,而不增加它的填充。 jetpack compose 中有类似的东西吗?我找不到可以做到这一点的修饰符。
【问题讨论】:
标签: android android-jetpack-compose
将状态移至父级
@Composable
fun ViewScreen() {
var scale by remember { mutableStateOf(1f) }
var offset by remember { mutableStateOf(Offset.Zero) }
var rotation by remember { mutableStateOf(0f) }
Column(
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier
// touch event
.pointerInput(Unit) {
detectTransformGestures(
onGesture = { _, pan, gestureZoom, gestureRotate ->
scale *= gestureZoom
offset = offset.plus(pan)
rotation += gestureRotate
}
)
}
.fillMaxSize()
) {
Cube(scale, offset, rotation)
}
}
@Composable
fun Cube(scale: Float, offset: Offset, rotation: Float) {
Box(
Modifier
.graphicsLayer(
scaleX = scale,
scaleY = scale,
rotationZ = rotation,
translationX = offset.x,
translationY = offset.y
)
.background(Color.Blue)
.size(256.dp)
)
}
【讨论】: