要在按钮或可组合项上实现长按功能,通常的方法是使用修饰符指针输入中检测到的点击手势
该代码看起来非常简单并且有效。
Box(modifier = modifier.pointerInput(Unit) {
detectTapGestures(
onPress = {
//Do something
},
onDoubleTap = {
},
onLongPress = {
onLongClick()
},
onTap = {
}
)
}
Run Code Online (Sandbox Code Playgroud)
但我需要的是在检测到长按事件之前修改超时(以毫秒为单位)(如果按下框的时间为 tomeoutMillisec,则触发长按事件)
pointerInput 作用域具有“val viewConfiguration”(ViewConfiguration 是一个接口),其中包含 val“longPressTimeoutMillis”。但我无法重新分配这些值(不是 longPressTimeoutMillis,也不能重新分配类 viewConfiguration),因为它们是 val 而不是 var
Box(modifier = modifier.pointerInput(Unit) {
//this gives an error
this.viewConfiguration.longPressTimeoutMillis = 200L
detectTapGestures(
onPress = {
},
onDoubleTap = {
},
onLongPress = {
onLongClick()
},
onTap = {
}
)
},
Run Code Online (Sandbox Code Playgroud)
有人知道该怎么做吗?