Android 视图';s onTouchListener vs onTouchEvent
视图的Android 视图';s onTouchListener vs onTouchEvent,android,touch-event,ontouchlistener,Android,Touch Event,Ontouchlistener,视图的onTouchEvent之间有什么区别: public class MyCustomView extends View { // THIS : @Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); } } 以及它的onTouchListener: MyCustomView myView = (MyCustomV
onTouchEvent
之间有什么区别:
public class MyCustomView extends View {
// THIS :
@Override
public boolean onTouchEvent(MotionEvent event) {
return super.onTouchEvent(event);
}
}
以及它的onTouchListener
:
MyCustomView myView = (MyCustomView) findViewById(R.id.customview);
myView.setOnTouchListener(new View.OnTouchListener() {
@Override
public void onClick(View arg0) {
// do something
}
});
或
如果这两者不同,我们是否需要同时实现这两个目标?
哪个先被调用
如果我有一些滚动和缩放功能,我应该在
onTouchEvent
或onTouchListener
中实现它们吗?我不确定您是否找到了答案。但我发现和你的相似
“只要您声明了接口并将侦听器放在正确的位置,onTouch就可以在您想要的任何地方工作(无论是在活动还是视图中)!另一方面,onTouchEvent只在视图中工作!”
对于滚动和缩放功能,我想onTouchListener将足以完成这两个功能(以及更多类似旋转等功能)。LeeYiHong的回答是正确的,另一个非常重要的事情是写在: 在将触摸事件
[即onTouchEvent(MotionEvent)]
提供给视图之前,将调用回调[即View.ontouchelistener->onTouch(View v,MotionEvent事件)]
“OnTouchListener”的代码应该有一个“onTouch”方法而不是“onClick”你说的“works”是什么意思?说onTouchEvent在活动中不工作是什么意思?你的意思是只能在视图对象中实现onTouchEvent吗?除了它们的“工作”位置和处理顺序之外,它们之间有什么功能上的区别吗?换句话说,你能用一个做什么,而用另一个做不了什么?还是更容易?为什么有人会选择一个而不是另一个,或者这完全是一个折腾?
public class MyCustomView extends View {
public MyCustomView(Context context, AttributeSet attrs) {
// THIS :
setOnTouchListener(new View.OnTouchListener() {
@Override
public void onClick(View arg0) {
// do something
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return super.onTouchEvent(event);
}
}