一、点击并按下
在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配合使用。但是,在这里有一点要特别注意的地方:如果在