📄️ 概述
Compose 提供了多种 API,可帮助您检测用户互动生成的手势。API 涵盖各种用例:
📄️ 点击(Clickable & CombinedClickable)
1. Clickable 点击
📄️ 拖动(Draggable)
1. Draggable能做什么
📄️ 滑动(Swipeable)
1. Swipeable 能做什么
📄️ 多点触控(Transformer)
1. Transformer 能做什么
📄️ 滚动(Scrollable)
当视图组件的宽度或长度超出屏幕边界时,我们希望能滑动查看更多的内容。对于长列表场景,我们可以使用 LazyColumn 与 LazyRow 组件来实现。而对于一般组件,我们可以使用 Scrollable 系列修饰符来修饰组件,使其具备可滚动能力。
📄️ 嵌套滑动(NestedScroll)
nestedScroll 修饰符主要用于处理嵌套滑动的场景,为父布局劫持消费子布局滑动手势提供了可能。
📄️ 自定义触摸反馈
通过前面 Draggable 修饰符、Swipeable 修饰符、Transformable 修饰符以及 NestedScroll 修饰符使用方法的学习,想必大家已经可以处理一些常见手势需求了。然而针对复杂手势需求,我们就需要对 Compose 中的手势处理有更深入的理解。实际上前面所提到的手势处理修饰符都是基于低级别的 PointerInput 修饰符进行封装实现的,所以弄清楚 PointerInput 修饰符的使用方法,有助于我们对高级别手势处理修饰符的理解,并且能够帮助我们更好的完成上层开发实现各种复杂的手势需求。
📄️ 实现惯性滑动
前面我们介绍过,如果当手指拖动离开屏幕存在初速度时,被拖动的组件会惯性滑动一段距离后停下,这种交互效果被称作 Fling。本节不妨使用前面所学习的手势监听挂起方法从底层模拟实现这种特殊的交互效果。