三个方法之间的关系
}
return consume;
}
public ParentLayout(Context context) {super(context);}
public ParentLayout(Context context, AttributeSet attrs) {super(context, attrs);}
public ParentLayout(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}
@Override
public boolean dispatchTouchEvent(MotionEvent ev){
ABLog.e("Default Return " + String.valueOf("default: false"));
return super.dispatchTouchEvent(ev);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev){
ABLog.e("Default Return " + String.valueOf("default: false"));
return super.onInterceptTouchEvent(ev);
}
@Override
public boolean onTouchEvent(MotionEvent ev){
ABLog.e("Default Return " + String.valueOf("default: false"));
return super.onTouchEvent(ev);
}
}
public ChildView(Context context) {super(context);}
public ChildView(Context context, AttributeSet attrs) {super(context, attrs);}
public ChildView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}
@Override
public boolean dispatchTouchEvent(MotionEvent ev){
ABLog.e("Default Return " + String.valueOf("default: false"));
return super.dispatchTouchEvent(ev);
}
@Override
public boolean onTouchEvent(MotionEvent ev){
ABLog.e("Default Return " + String.valueOf("default: false"));
return super.onTouchEvent(ev);
}
}
点击ParentView(2处),打印Log
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
ABLog.e("Default Return " + String.valueOf("true"));
return true;
@Override
public boolean onTouchEvent(MotionEvent ev) {
ABLog.e("Default Return " + String.valueOf("false"));
return false;
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
ABLog.e("Default Return " + String.valueOf("true"));
return true;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev){
ABLog.e("Default Return " + String.valueOf("false"));
return false;
@Override
public boolean dispatchTouchEvent(MotionEvent ev){
ABLog.e("Default Return " + String.valueOf("default: false"));
return super.dispatchTouchEvent(ev);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev){
ABLog.e("Default Return " + String.valueOf("true"));
return true;
}
@Override
public boolean onTouchEvent(MotionEvent ev){
return false;
}
return super.dispatchTouchEvent(ev);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev){
ABLog.e("Default Return " + String.valueOf("true"));
return true;
}
@Override
public boolean onTouchEvent(MotionEvent ev){
ABLog.e("Default Return " + String.valueOf("true"));
return true;
}
public ChildView(Context context) {
super(context);
}
public ChildView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ChildView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}
@Override
public boolean onTouchEvent(MotionEvent ev) {
ABLog.e("Default Return " + String.valueOf("false"));
return super.onTouchEvent(ev);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ChildView view = (ChildView)findViewById(R.id.myChildView);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ABLog.e("OnClickListener");
}
});
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
ABLog.e("setOnTouchListener");
return false;
}
});
}
}
});