`
阅读更多
http://docs.google.com/View?id=dcz49tvn_90cq67qzg3
http://makej2me.iteye.com/blog/629338
http://blog.csdn.net/wong_judy/archive/2010/01/15/5192777.aspx

Activity.dispatchTouchEvent(MotionEvent) -可以在这些事件被分派到窗口之前让Activity截获所有的事件。
ViewGroup.onInterceptTouchEvent(MotionEvent) -让ViewGroup在事件分派到子View之前看到这些事件。
ViewParent.requestDisallowInterceptTouchEvent(boolean) - 让父View不要使用onInterceptTouchEvent(MotionEvent)来截获event.

onLongClick() - 返回一个布尔值表示你是否消耗了该event. 也就是,如果你已经处理了该event, 则它应该停止了,就返回true, 而如果你没有处理它,而是将它留给其它的on-click监听器, 则返回false.
onKey() - 同上.
onTouch() - 返回一个布尔值表示你是否消耗了该event. 该event可以有多个动作. 如果在向下的动作接收时你返回false, 就表示你没有消耗该event, 并且对后续动作也不感兴趣. 也就是说, 后面的手势动作,以及最后的向上动作都将不会再被通知.
键事件永远会被发送到当前获得焦点的View. 它们是从View层次的顶端开始分派, 然后向下直到合适的目的地. 如果你的View现在拥有焦点, 那么你可以从dispatchKeyEvent()方法中看到事件的分派过程. 除了使用veiw之外,你也可以使用你的Activity的onKeyDown()和onKeyUp()方法来获取所有的时间.
注意: Android将首先调用事件处理器, 然后调用合适的默认处理器. 因此, 从这些事件监听器中返回true将使其它监听器和默认处理器失效. 因此在你返回true时要小心.

Android中的Touch event处理方式和其他系统不尽相同。在Android中,一个View加入到一个ViewGroup中,当发生一系列Touch event(即触摸屏幕事件)时,这些事件首先经由ViewGroup中的onInterceptTouchEvent()函数来分派。这个函数决定touch event到底由View处理,还是由ViewGroup处理。它有一个boolean型的返回值,当返回true的时候,则由ViewGroup处理;反之返回false,由View来处理。这本身没有问题。但是这个函数有个特点,那就是如果某一次返回的是true,则从这以后的所有touch event都不需要再经过onInterceptTouchEvent()的分配,而统一都交由ViewGroup处理;如果返回的是false,这次的事件交View处理,下次的event仍然需要由onInterceptTouchEvent()分配,以决定分配给谁
分享到:
评论

相关推荐

    如何获得一个控件的HANDLE

    在Windows编程中,"HANDLE"是一个非常重要的概念,它是一个无类型指针,用来标识操作系统中的各种对象,如窗口、设备、线程、进程等。本文将深入探讨如何获取一个控件的HANDLE,并通过实际应用讲解相关的指针操作。 ...

    ui.sortable.js

    jquery ui sortable 结合jquery ui.core使用

    pyqt5-combobox的使用,ui和业务分离版

    在PyQT5中,Combobox是一种常用的用户界面(UI)组件,它允许用户从一系列预定义的选项中选择一个。本教程将深入讲解如何在Python的PyQT5框架下使用Combobox,并实现UI与业务逻辑的分离,提高代码的可维护性和可扩展...

    安卓学习之handle的使用方法

    在 Android 开发中,Handle 是一个关键的组件,它主要用于在不同的线程之间进行通信,特别是在 UI 线程和后台线程之间。Handle 的主要作用是解决 Android 应用程序中的多线程问题,确保耗时的操作不会阻塞主线程,...

    使用Handler实现异步更新UI例子

    在Android应用开发中,UI(用户界面)的更新必须在主线程中进行,因为这是Android系统规定的,以保证用户界面的流畅性。然而,当执行耗时操作如网络请求、数据库操作等时,如果在主线程中进行,将导致应用程序无响应...

    Unity UI Cookbook pdf 2016新书 0分

    Paperback: 307 pages Publisher: Packt Publishing - ebooks Account (January 6, ...Handle runtime customizations Add complex Head-up displays (HUDs) Design and implement 3D UIs Integrate minimaps in the UI

    Python Pyqt5 自适应UI 导入本地Excel

    openButton.clicked.connect(lambda: handle_open_file()) ``` 5. **自适应UI**:PyQt5支持动态调整UI大小以适应不同屏幕尺寸。可以通过设置窗口的`sizePolicy`属性和控件的布局管理器(如QVBoxLayout或QHBoxLayout...

    获取UI样式编辑器中的选择对象的Handle

    在UG NX二次开发时,通过UI样式编辑器创建菜单按钮时,获取选择对象的Handle值,这里包含了对话框文件.dlx和工程项目文件,是一个完整的测试源代码。有兴趣可以下载看,代码不多,但是内容已经讲清楚。下载慎重

    GetSelection:从列表框或弹出菜单中获取选定的字符串-matlab开发

    获取选择从列表框或弹出菜单中获取选定的字符串是一项标准工作,它由 Matlab 的 POPUPSTR 命令... 例子: Selected = GetSelection(UIHandle) 单选列表框和弹出字符串回复一个字符串,多选列表框回复一个单元格字符串。

    前端项目-jqueryui-touch-punch.zip

    4. 调用Touch Punch,`$.fn.draggable = $.fn.swipe.handle;`,这样就启用了触屏设备上的拖放功能。 在“前端项目-jqueryui-touch-punch”这个项目中,包含的文件可能是jQuery UI Touch Punch的源码或示例。通过...

    ligerUI的拖动效果demo

    4. 配置选项:ligerDraggable提供了多种可配置的参数,如handle(指定拖动的手柄元素)、cursor(拖动时的鼠标光标样式)、onStartDrag(拖动开始时的回调函数)、onStopDrag(拖动结束时的回调函数)等,可以根据...

    用友NC开发UI工厂

    UI工厂作为一套基于NC-UAP的UI开发框架,旨在通过总结大量业务场景中的UI设计模式,提炼共通部分并形成不同的UI基类,以此提高UI开发效率及代码复用率。该框架综合利用了单据模板、查询模板、打印模板等技术手段,...

    PowerShell实现UI自动化

    例如,你可以通过窗口的句柄(handle)找到该窗口对应的`AutomationElement`。此外,`FindFirst`和`FindAll`方法可以根据预定义的条件查找元素。 3. **交互与控制** 一旦找到了UI元素,就可以通过`...

    android demo,主线程handle

    在Android开发中,`主线程`(也称为UI线程)是应用程序的入口点,负责处理用户交互和更新用户界面。`Handle` 和 `Runnable` 是Android多线程编程中的重要概念,它们允许开发者在不同的线程之间同步数据和执行任务。`...

    简单的handle demo 实现计时器功能,亲测可用,线程例子

    Handle,通常指的是Android中的Handler类,它与Looper和Message配合,用于在Android主线程中进行消息处理和更新UI。以下是对这个"简单的handle demo 实现计时器功能"的详细解析。 1. **Handle机制**:Handle机制是...

    unity 弧形UI 圆形slider 圆形滑动条

    3. **编辑RectTransform**: 对预置体中的各个UI元素(如Slider的Handle和Background)进行调整,设置RectTransform的锚点、偏移和大小,以便它们能适应弧形形状。 4. **自定义Shader**: 可能需要自定义Shader,以便...

    Android handle传值Demo

    "Android handle传值Demo"就是这样一个实例,它展示了如何使用Handler和Bundle来实现在后台线程与主线程之间的数据传递。 首先,让我们了解下Handle(处理者)的概念。在Android中,主线程(UI线程)负责处理用户...

    android handle线程数据传递 源代码

    本文将深入探讨Android多线程中的数据传递以及如何通过Handle实现UI更新。 首先,我们了解下Android线程的基本概念。Android应用主要运行在主线程,也称为UI线程,负责处理用户交互和更新UI。由于主线程不允许执行...

    jqueryui-API(最完整)

    `$.fn.draggable()` 方法可以将一个元素设置为可拖动,`handle` 选项可以指定拖动的手柄。`proxy` 可以定义拖动时的代理元素,可以是 'clone' 或自定义函数返回的 jQuery 对象。`revert` 选项决定在松开鼠标后,元素...

Global site tag (gtag.js) - Google Analytics