手势事件作用域 awaitPointerEventScope
手势事件作用域 awaitPointerEventScope
我们前面介绍的 GestureDetector 系列 API 本质上仍然是一种封装,既然手势处理是在协程中完成的,所以手势监听必然是通过协程的挂起恢复实现的,以取代传统的回调监听方式。 要想深入理解 Compose 手势处理,就需要学习更为底层的手势处理挂起方法。\n\n在 PointerInputScope 中我们使用 awaitPointerEventScope 方法获得 AwaitPointerEventScope 作用域,在 AwaitPointerEventScope 作用域中我们可以使用 Compose 中所有低级别的手势处理挂起方法。 当 awaitPointerEventScope 内所有手势事件都处理完成后 awaitPointerEventScope 便会恢复执行将 Lambda 中最后一行表达式的数值作为返回值返回。
suspend fun
block: suspend AwaitPointerEventScope.() -> R
): R
我们在 AwaitPointerEventScope 中发现了以下这些基础手势方法,可以发现这些 API 均是挂起函数 awaitPointerEvent\t手势事件 awaitFirstDown\t第一根手指的按下事件 drag\t拖动事件 horizontalDrag\t水平拖动事件 verticalDrag\t垂直拖动事件 awaitDragOrCancellation\t单次拖动事件 awaitHorizontalDragOrCancellation\t单次水平拖动事件 awaitVerticalDragOrCancellation\t单次垂直拖动事件 awaitTouchSlopOrCancellation\t有效拖动事件 awaitHorizontalTouchSlopOrCancellation\t有效水平拖动事件 awaitVerticalTouchSlopOrCancellation\t有效垂直拖动事件