Compose手势
本文链接:
点击
拖动
滑动
锚点
Compose Drag 拖动原理
Compose Drag 拖动原理:
等待第一次按下 挂起 // UI展现出来的时候,这个while循环就已经在等待第一次按下了。
事件 -> 恢复
判断拖动合法性
合法
onDragStart
onDrag
onDragEnd
forEachGesture{
awaitPointerEventScope{
val down = awaitFirstDown()
onDragStart.invoke
onDrag
onDragCancel // 看条件
onDragEnd // 看条件
}
}
变换手势原理
功能代码
@Composable
fun TransformGestureDemo() {
var boxSize = 100.dp
var offset by remember {
mutableStateOf(Offset.Zero) }
var ratationAngle by remember {
mutableStateOf(0f) }
var scale by remember {
mutableStateOf(1f) }
Box(Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
Box(Modifier
.size(boxSize)
.rotate(ratationAngle) // 需要注意offset与rotate的调用先后顺序

最低0.47元/天 解锁文章
810

被折叠的 条评论
为什么被折叠?



