Android TouchEvent事件傳遞機制
阿新 • • 發佈:2018-12-23
public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { Log.d("d", "【總統】任務<" + Util.actionToString(ev.getAction()) + "> : 需要分派"); return super.dispatchTouchEvent(ev); } @Override public boolean onTouchEvent(MotionEvent ev) { boolean bo = false; Log.d("d", "【總統】任務<" + Util.actionToString(ev.getAction()) + "> : 下面都解決不了,下次再也不能靠你們了,哼…只能自己嘗試一下啦。能解決?" + bo); return bo; } }
public class MyFrameLayout extends FrameLayout { public MyFrameLayout(Context context, AttributeSet attrs){ super(context, attrs); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { Log.d("d", "【省長】任務<" + Util.actionToString(ev.getAction()) + "> : 需要分派"); return super.dispatchTouchEvent(ev); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { boolean bo = false; Log.d("d", "【省長】任務<" + Util.actionToString(ev.getAction()) + "> : 攔截嗎?" + bo); return bo; } @Override public boolean onTouchEvent(MotionEvent ev) { boolean bo = false; Log.d("d", "【省長】任務<" + Util.actionToString(ev.getAction()) + "> : 市長是個廢物,下次再也不找你了,我自己來嘗試一下。能解決?" + bo); return bo; } }
public class MyLinearLayout extends LinearLayout{ public MyLinearLayout(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { Log.d("d", "【市長】任務<" + Util.actionToString(ev.getAction()) + "> : 需要分派"); return super.dispatchTouchEvent(ev); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { boolean bo = false; Log.d("d", "【市長】任務<" + Util.actionToString(ev.getAction()) + "> : 攔截嗎?" + bo); return bo; } @Override public boolean onTouchEvent(MotionEvent ev) { boolean bo = false; Log.d("d", "【市長】任務<" + Util.actionToString(ev.getAction()) + "> : 農民真沒用,下次再也不找你了,我自己來嘗試一下。能解決?" + bo); return bo; } }
public class MyTextView extends TextView
{
public MyTextView(Context context, AttributeSet attrs){
super(context, attrs);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev){
Log.d("d", "【農民】任務<" + Util.actionToString(ev.getAction()) + "> : 需要分派,我下面沒人了,怎麼辦?自己幹吧");
return super.dispatchTouchEvent(ev);
}
@Override
public boolean onTouchEvent(MotionEvent ev){
boolean bo = true;
Log.d("d", "【農民】任務<" + Util.actionToString(ev.getAction()) + "> : 自己動手,埋頭苦幹。能解決?" + bo);
return bo;
}
}