• Android中的事件传递机制


    • Android源码版本:API Level 19(Android 4.4)

    Android事件构成

    在Android中,事件主要包括点按、长按、拖拽、滑动等,点按又包括单击和双击,另外还包括单指操作和多指操作。所有这些都构成了Android中的事件响应。总的来说,所有的事件都由如下三个部分作为基础:

    • 按下(ACTION_DOWN)
    • 移动(ACTION_MOVE)
    • 抬起(ACTION_UP)

    所有的操作事件首先必须执行的是按下操作(ACTIONDOWN),之后所有的操作都是以按下操作作为前提,当按下操作完成后,接下来可能是一段移动(ACTIONMOVE)然后抬起(ACTION_UP),或者是按下操作执行完成后没有移动就直接抬起。这一系列的动作在Android中都可以进行控制。

    我们知道,所有的事件操作都发生在触摸屏上,而在屏幕上与我们交互的就是各种各样的视图组件(View),在Android中,所有的视图都继承于View,另外通过各种布局组件(ViewGroup)来对View进行布局,ViewGroup也继承于View。所有的UI控件例如Button、TextView都是继承于View,而所有的布局控件例如RelativeLayout、容器控件例如ListView都是继承于ViewGroup。所以,我们的事件操作主要就是发生在View和ViewGroup之间,那么View和ViewGroup中主要有哪些方法来对这些事件进行响应呢?记住如下3个方法,我们通过查看View和ViewGroup的源码可以看到:

     

    View.java

    public boolean dispatchTouchEvent(MotionEvent event)
    public boolean onTouchEvent(MotionEvent event) 

    ViewGroup.java

    public boolean dispatchTouchEvent(MotionEvent event)
    public boolean onTouchEvent(MotionEvent event) 
    public boolean onInterceptTouchEvent(MotionEvent event)
  • 相关阅读:
    修改Unity脚本模板的方法合计
    Mesh.Bake Scaled Mesh PhysX CollisionData的性能问题
    Scene的实时追踪显示
    基于Unity3D的AOP使用思路
    导出Unity场景为配置文件
    unity3d中namespace的使用注意问题
    [iOS]通过xib定义Cell然后关联UICollectionView
    swift之弹出一个背景半透明的UIViewController
    swift之xib关联UIView
    iOS坑爹的could not find any information for class named xxx
  • 原文地址:https://www.cnblogs.com/liyanli-mu640065/p/4526784.html
Copyright © 2020-2023  润新知