总结: Android自定义的view重写了onTouchEvent方法后,还想要响应onClick方法生效的话,最好在up事件里调用一下performClick()方法。
helpLayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
helpLayout.setSelected(true);
helpLayout.setPressed(true);
settingLayout.setSelected(false);
aboutLayout.setSelected(false);
break;
case MotionEvent.ACTION_UP:
helpLayout.setPressed(false);
//添加此方法,使onclick事件生效
helpLayout.performClick();
break;
}
return false;
}
});
详情请看:https://www.jianshu.com/p/7d1e773d9955