首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

onTouchEvent(二) 使用Scroller实现黏性滑动的ScrollView

上一篇博文onTouchEvent(一) 你所必须知道的坐标详解介绍了onTouchEvent()手势控制相关的一些坐标概念,这篇文章结合上一篇内容加上Scroller实现一个简单的带黏性滑动的ScrollView...的头部,如果超出三分之二就滑动到下个view 首先看看我们需要做些什么,自定义View要复写的方法有好几个,我们要复写的有: 1. onMeasure() 2. onLayout() 3. onTouchEvent...onTouchEvent 首先提醒下getScrollY()、getScrollX()这两个方法获取的是当前的偏移量,初始状态都为0,左移累加正值,右移累加负值,上移累加正值,下移累加负值。...如果看不懂其中坐标操作等请参考前一篇文章 onTouchEvent(一) 你所必须知道的坐标详解 ? ? ? ? 该说明的都在注释里标明了,毕竟后面解释的话来回滚动很麻烦。...首先onTouchEvent()中调用了Scroller.startScroll()方法,该方法不涉及UI操作所以在后面调用了一次invalidate()让View去重绘,根据上面的computeScroll

97930

Android 中屏幕点击事件的实现Android onTouchEvent, onClick及onLongClick的调用机制

, onClick及onLongClick的调用机制 针对屏幕上的一个View控件,Android怎样区分应当触发onTouchEvent,还是onClick,亦或是onLongClick事件?...onTouchEvent onTouchEvent中要处理的最经常使用的3个事件就是:ACTION_DOWN、ACTION_MOVE、ACTION_UP。...onClick、onLongClick与onTouchEvent 以前看过一篇帖子提到,假设在View中处理了onTouchEvent,那么就不用再处理onClick了,由于Android仅仅会触发当中一个方法...的话,onTouchEvent是最先捕捉到ACTION_DOWN和ACTION_UP事件的,其次才可能触发onClick或者onLongClick。...基本的逻辑在View.java中的onTouchEvent方法中实现的: case MotionEvent.ACTION_DOWN: mPrivateFlags |= PRESSED;

3K30

图解 Android 事件分发机制

图 3. 3、dispatchTouchEvent 和 onTouchEvent return false的时候事件都回传给父控件的onTouchEvent处理。 ? 图 4....对于dispatchTouchEvent 返回 false 的含义应该是:事件停止往子View传递和分发同时开始往父控件回溯(父控件的onTouchEvent开始从下往上回传直到某个onTouchEvent...return false 是回溯到父View的onTouchEvent,然后ViewGroup怎样通过dispatchTouchEvent方法能把事件分发到自己的onTouchEvent处理呢,return...return false 是回溯会父类的onTouchEvent,怎样把事件分发给自己的onTouchEvent 处理呢,那只能return super.dispatchTouchEvent,View类的...4、 不传给子View,事件终止往下传递,事件开始回溯,从父View的onTouchEvent开始事件从下到上回归执行每个控件的onTouchEvent------->return false; 注:

1.2K90

Android查缺补漏(View篇)--事件分发机制

返回true表示消耗事件,那么事件流的后续部分还会传递过来;返回false表示不消耗事件,事件将交给上级View的onTouchEvent()处理,如果上级View的onTouchEvent()仍然返回...false,那么事件将再交给上级的上级处理,以此类推,如果各级View的onTouchEvent()都不消耗事件,那么事件最终将交给Activity的onTouchEvent()处理。...中的流程到达了View的onTouchEvent方法中。...: 1 | 是否消耗事件:true 当View的onTouchEvent不消耗事件时,事件会交给ViewGroup的onTouchEvent方法处理,而从log可以看出ViewGroup的onTouchEvent...而如果ViewGroup这里路也不通,那么探路人就只能去Activity的onTouchEvent那里了,后续部队也直接去Activity的onTouchEvent这里就可以了。

61470
领券