- Touch事件分发 (reference 里面的解释(ViewGroup? ::onInterceptTouchEvent())相当的晕,所以写下来)
- Touch事件是以一次 down, move, ..., up 为一个单位,叫gesture; 各gesture是相互独立的
- Touch事件默认直接发给target
- 当然, 刚开始的时候target == null, target是在down的时候确定
- 子View::onTouchEvent()的返回值,决定了要不要放弃后面的move,up。 如果放弃,则把机会留给同一区域的兄弟view。 这个策略,跟我们之前做的父子处理是不一样的。
- 在down的时候, 如果ViewGroup::onInterceptTouchEvent()返回true, 那么可以在自己的onTouchEvent()中处理整个gesture。ViewGroup::onInterceptTouchEvent()不会再被调用。
- 如果在中途返回true (即down的时候返回false, 后面某个move返回true), 那么剩下的gesture交给自己的onTouchEvent()。但是这个event本身不会发到ViewGroup::onTouchEvent()
- 如果返回false,那么自己的onTouchEvent()不会给调用,直接调用target.onTouchEvent()。当然,ViewGroup::onInterceptTouchEvent()每次都会被调
- ...
- 这个策略太严密了
2011年9月20日星期二
ViewGroup.onInterceptTouchEvent() 分析
订阅:
博文评论 (Atom)
没有评论:
发表评论