如触摸屏幕并在adb shell中移动或使用“输入滑动”,android系统如何决定是否滚动以及滚动距离?
答案 0 :(得分:1)
简单的回答。手势检测。滚动视图(如ScrollView,ListView和RecyclerView)将注册以从屏幕接收onTouchEvent事件。然后,他们将跟踪这些事件,以检测滑动等事件,包括滑动的方向,速度和加速度。
从那里,他们可以决定是否滚动,滚动距离和方向。每个视图将根据其内容的布局方式,是否存在可滚动的其他内容等进行不同的操作。
特别是ScrollView使用VelocityTracker跟踪一系列触摸事件,并使用它来计算要做的事情。还有其他选项(如GestureDetector类)可用于在自定义视图中进行简单的手势检测。
帮自己一个忙,看一下IDE中ScrollView的源代码。 特别是onTouchEvent和onInterceptTouchEvent方法。