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
现在将setClic