Compose_14手势

本文详细介绍了Jetpack Compose中各种手势的实现,包括点击与按下、滚动、嵌套滚动、滑动、拖动和多点触控操作。点击事件可通过`clickable`修饰符处理,滚动可借助`Column`、`Row`和`scroll`,嵌套滚动自动处理,滑动和拖动使用`swipeable`和`draggable`,多点触控如平移、缩放和旋转利用`transformable`和`detectTransformGesture`。
摘要由CSDN通过智能技术生成

一、点击并按下

在Compose中,响应点击事件实在修饰Modifier下的clickable中实现,clickable修饰符允许应用检测对已应用该修饰符的元素的点击。

/**
 * 手势
 */
@Composable
fun compose_14() {
    val count = remember { mutableStateOf(0) }
    Column() {
        // 点击事件
        Text(
            text = count.value.toString(),
            modifier = Modifier
                .padding(10.dp)
                .clickable { count.value += 1 }
        )

    }

}

如果有需求需要按下、双击或长按的事件时,我们可以通过pointerInput修饰符提供点按手势检测器。

/**
 * 手势
 */
@Composable
fun compose_14() {
    val count = remember { mutableStateOf(0) }
    Column() {
        ...
        // 点击事件
        Text(
            text = "detectTapGestures",
            modifier = Modifier.padding(10.dp)
                .pointerInput(Unit) {
                    detectTapGestures(
                        onPress = { Log.e("onPress", "======onPress") }, // 按下
                        onDoubleTap = { Log.e("onDoubleTap", "======onDoubleTap") }, // 双击
                        onLongPress = { Log.e("onLongPress", "======onLongPress") }, // 长按
                        onTap = { Log.e("onTap", "======onTap") } // 单击
                )
            }

        )
    }

}

二、滚动

        如果需求需要纵向滚的话,可以配合Column和修饰符下的verticalScroll使用;反之,如果是需要横向滚动,则可以配合Row和修饰符下的horizontalScroll配合使用。但是,在这里有一点要特别注意的地方:如果在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值