Android触摸滑动全解(一)——View中触摸事件详解
View触摸事件概述
View中的触摸事件可以分为两个部分。
dispatchTouchEvent()和onTouchEvent()这两个方法,其中,dispatchTouchEvent()是用来传递触摸事件(返回true表示消费此次触摸事件,返回false表示不消费此次触摸事件);onTouchEvent用来处理触摸事件。
OnTouchListener、OnClickListener等触摸或点击回调。
以OnTouchListener举例,OnTouchListener会回调onTouch()方法,此方法是View提供给用户去进行触摸事件处理的方法,而onTouchEvent()是系统自身处理用户触摸的方法,onTouch()优先级高于onTouchEvent()。
Enabled和Clickable属性对触摸事件的影响
Enabled属性设为false表示禁用View,Clickable属性设置为false表示按钮不可点击,这两个属性初始状态都是true,分别设置为true和false时,对View的影响如下:
将第一个按钮的属性设置Enabled为true,Clickable属性为false,第二个按钮的属性设置为相反值:
btn1 = findViewById(R.id.btn);
btn2 = findViewById(R.id.btn2);
btn1.setEnabled(true);
btn1.setClickable(false);
btn2.setEnabled(false);
btn2.setClickable(true);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.e("zw","btn1 is click");
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.e("zw","btn2 is click");
}
});
Log打印如下:
zw: btn1 is click