博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
View中的onTouchEvent()与setOnTouchListener()中的ontouch()方法的事件处理先后顺序
阅读量:6197 次
发布时间:2019-06-21

本文共 1455 字,大约阅读时间需要 4 分钟。

Touch事件的两种情况

1.覆写View.class中定义的onTouchEvent-->基于事件回调监听方式

@Overridepublic boolean onTouchEvent(MotionEvent ev) {// TODOreturn super.onTouchEvent(ev);}

 

2.通过监听的形式,监听View.class中的setOnTouchListener(listener)--->基于监听器事件监听方式

/*** Register a callback to be invoked when a touch event is sent to this view.* @param l the touch listener to attach to this view*/public void setOnTouchListener(OnTouchListener l) {getListenerInfo().mOnTouchListener = l;}public interface OnTouchListener {    /**     * Called when a touch event is dispatched to a view. This allows listeners to     * get a chance to respond before the target view.     *     * @param v The view the touch event has been dispatched to.     * @param event The MotionEvent object containing full information about     *        the event.     * @return True if the listener has consumed the event, false otherwise.     */    boolean onTouch(View v, MotionEvent event);}

3.两个方法的调用顺序是怎样

经过debug测试,基于监听器的优先于基于回调的,源码上分析也一样.
4.基于监听器的返回值值是否影响基于回调的

父类方法中会先判断接口回调的是不是返回true,是的话就不执行ontouch方法

会影响,如果return true,基于回调onTouch就不执行

5.举个栗子:

在一个Activity里面放一个TextView的实例tv,并且这个tv的属性设定为 fill_parent
在这种情况下,当手放到屏幕上的时候,首先会是tv响应touch事件,执行onTouch方法。
如果onTouch返回值为true,
表示这个touch事件被onTouch方法处理完毕,不会把touch事件再传递给Activity,
也就是说onTouchEvent方法不会被调用。
(当把手放到屏幕上后,onTouch方法被一遍一遍地被调用)
如果onTouch的返回值是false,
表示这个touch事件没有被tv完全处理,onTouch返回以后,touch事件被传递给Activity,
onTouchEvent方法被调用。

转载于:https://www.cnblogs.com/hongsongandroid/p/5399945.html

你可能感兴趣的文章
unittest测试框架和测试报告的输出实例(一)
查看>>
下MFC中对象、句柄、ID之间的区别.
查看>>
如何构建Win32汇编的编程环境(ONEPROBLEM个人推荐)
查看>>
Asp.Net MVC 分页、检索、排序整体实现
查看>>
python 输出当前行号
查看>>
12C -- 配置Application Continuity
查看>>
Redis从入门到精通:初级篇(转)
查看>>
Flymeos插桩适配教程
查看>>
Elasticsearch教程(九) elasticsearch 查询数据 | 分页查询
查看>>
C#的delegate简单练习
查看>>
还在用PS磨皮去皱?看看如何用神经网络高度还原你的年轻容貌!
查看>>
YARN中内存的设置
查看>>
json 解析豆瓣ApiURL
查看>>
java 基础2
查看>>
大端模式与小端模式、网络字节顺序与主机字节顺序
查看>>
微信支付申请90%的商户都卡在这儿了,申请微信支付,商户功能设置详细说明...
查看>>
9.7、Libgdx之振动器
查看>>
jsp九大内置对象
查看>>
马哥6-3
查看>>
制作一款微信表情
查看>>