ste*_*ios 58 android ontouchlistener touch-event
在使用onTouchEvent和onTouch进行了多次实验后,我发现onTouch可以在任何地方工作(无论是在活动中还是在视图中),只要您声明了接口并将Listener放在正确的位置即可!另一方面,onTouchEvent仅适用于View!我的假设是否正确?这是真正的区别吗?
tro*_*foe 42
是的,你是正确的- onTouch()
所使用的用户的View
同时获得触摸事件onTouchEvent()
所使用的派生类的View
拿到触摸事件.
Dex*_*ter 29
我对onTouchEvent()和onTouch()的工作方式有些困惑(你可以看看我对这个问题的评论).经过以下一些研究后,我发现了它.这可能对初学者有所帮助.
1)实施:
如果你想使用onTouch(),你必须做三件事.
1-实现OnTouchListener
2-调用要设置的视图上的setOnTouchListener()捕获事件
3-覆盖onTouch()来处理事件
但是如果你想使用onTouchEvent(),则不需要执行上面的步骤1和2.只需要覆盖onTouchEvent().
2)工作:
onTouch()适用于视图,视图组,活动.这意味着您可以在view,viewgroup或activity中使用onTouch().这个方法有两个参数[onTouch(View v,MotionEvent e)].这允许您过滤活动或视图组中不同视图的事件.或者活动本身可以处理它.
onTouchEvent()接受一个参数[ onTouchEvent(MotionEvent e)
].因此,这只能在实现它的视图内部或派生视图中使用.派生的View可以扩展onTouchEvent()中定义的触摸行为.
我认为,这些选项是Android更灵活的开发理念的一部分,尽管它有时会给学习者带来困惑.
我使用了ontouch()和ontouchevent(),因为当我想在单个视图(比如Linearlayout)上处理单个视图元素(如按钮,图像按钮等)时使用ontouch,而当我想在其他区域工作时我的元素(例如按钮)我使用ontouchevent.
归档时间: |
|
查看次数: |
43736 次 |
最近记录: |