android中的dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent

android中,触摸事件的传递过程主要涉及三个方法:dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent。
详细了解这三个方法的作用首先要了解以下几个知识点:

  • android中的Touch事件都是从ACTION_DOWN开始的:
    单指:ACTION_DOWN->ACTION_MOVE->ACTION_UP;
    多指:ACTION_DOWN->ACTION_POINTER_DOWN->ACTION_MOVE->ACTION_POINTER_UP->ACTION_UP
  • 一次完整的触摸事件中,Down和Up都只有一个,Move有若干个,可以为0个。当触摸事件被拦截时,Up可能是0个。
  • View在ViewGroup内,ViewGroup也可以在其他ViewGroup内,这时候把内部的ViewGroup当成View来分析。

知道了以上基本知识点以后,就可以开始了~

Read More

最全面的ConstraintLayout教程

前言

本篇文章的主题是ConstraintLayout。其实ConstraintLayout是Android Studio 2.2中主要的新增功能之一,也是Google在去年的I/O大会上重点宣传的一个功能。我们都知道,在传统的Android开发当中,界面基本都是靠编写XML代码完成的,虽然Android Studio也支持可视化的方式来编写界面,但是操作起来并不方便,我也一直都不推荐使用可视化的方式来编写Android应用程序的界面。

Read More