【发布时间】:2015-09-25 01:37:56
【问题描述】:
如触摸屏幕移动或在adb shell中使用“输入滑动”,android系统如何决定滚动或不滚动以及滚动的距离?
【问题讨论】:
如触摸屏幕移动或在adb shell中使用“输入滑动”,android系统如何决定滚动或不滚动以及滚动的距离?
【问题讨论】:
简单的答案。手势检测。 ScrollView、ListView 和 RecyclerView 等滚动视图将注册以接收来自屏幕的 onTouchEvent 事件。然后,他们将随着时间的推移跟踪这些事件,以检测滑动等内容,包括滑动的方向、速度和加速度。
从那里,他们可以决定是否滚动、滚动多远以及滚动方向。每个视图都会根据其内容的布局方式、是否有其他内容可以滚动等以不同的方式执行此操作。
特别是 ScrollView 使用 VelocityTracker 来跟踪一系列触摸事件,并使用它来计算要做什么。还有其他选项(如 GestureDetector 类)可用于在自定义视图中进行简单的手势检测。
帮自己一个忙,查看 IDE 中 ScrollView 的源代码。 特别是 onTouchEvent 和 onInterceptTouchEvent 方法。
【讨论】: