实现想法
很简单View消费自己点击事件是要触发onTouchEvent方法,只需要自定义一下View,并重写onTouchEvent返回false表示不消费事件,然后再调用performClick触发点击事件。
不多说了,直接上代码
public class AdminView extends View {
public AdminView(Context context) {
super(context);
}
public AdminView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public AdminView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public AdminView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
//触发自身点击事件
performClick();
return false;//但是不消费此事件
}
}
网友评论