美文网首页
onTouch事件

onTouch事件

作者: 静静的看你的样子 | 来源:发表于2018-01-15 11:31 被阅读0次

           公司最近需要开发安卓,没多少时间系统学习,安卓算是半路出家。

           昨天开发中遇到一个onTouch相关的问题,onTouch可以有两个参数,一个是View,一个是MotionEvent,View表示受到Touch事件的view对象,MotionEvent包含的事件的详细信息,例如触摸点的信息,触摸事件类型的信息等。MotionEvent有几个属性需要注意,分别如下:

                 1.ACTION_DOWN:表示按下了屏幕,是第一个执行也是按下之后必然执行的方法。

                  2.ACTION_MOVE:表示为移动手势,会不停的执行直到触摸结束。

                  3.ACTION_UP :表示离开屏幕,触摸停止的时候执行。

                  4.ACTION_CANCEL:表示取消手势,由系统产生的。

                  总结:1个ACTION_DOWN+多个ACTION_MOVE+1个ACTION_UP=onTouch。

            onTouch方法返回的是一个boolean类型的值,该值如果为true,表示处理完成,不会传递给下一个对象,也就是说后面的控件或对象就不会接收到该触摸事件了。若返回值为false,则触摸事件对后面的控件或对象仍有效。

            昨天遇到的问题就是定义了一个全局变量,用来在某些地方控制某些环节,然后在onTouch方法中改变,代码:

          可以看到buttontype是在onReceive中控制流程的,那么这样写就成了 onTouch(button=“smkw”)>onReceive(buttontype="smcp")>onTouch(button="smkw")

    可以看到ontouch执行了两次,一次按下,一次松开,然后buttontype还是原来的,对后面的工作肯定有影响,改为:

           分别在该手势的事件中处理,问题就解决了,当然,松开的手势中其实不必再处理的,但是为保险,还是写上了。

           可能问题很低级,但是还是记录一下,方便日后观看。

    相关文章

      网友评论

          本文标题:onTouch事件

          本文链接:https://www.haomeiwen.com/subject/payroxtx.html