看了不少仁兄写的android事件模型,自己试了下,实际上平时简单的开发的话,不用弄那么复杂
?
事件首先由activity捕获,通过重写dispatchtouchevent和dispatchkeyevent方法, 就能实现点击任意popupwindow以外的区域实现popuopwindow关闭这样一个功能,类似ucweb那样
?
? @Override
? ? public boolean dispatchTouchEvent(MotionEvent ev) {
? ? ? ? Toast.makeText(getApplicationContext(), "touchevent dispatch", 1000).show();
?
? ? ? ? return super.dispatchTouchEvent(ev);
? ? }
?
? ? @Override
? ? public boolean dispatchKeyEvent(KeyEvent event) {
? ? ? ? return super.dispatchKeyEvent(event);
? ? }
?
?
加入自己的逻辑即可,如果返回super.dispatch则继续执行默认的流程,从activity到对应的空间,依次传递这个event
?
1 楼 lenomon 2012-03-11
上面说的简单了,可以看看这篇 Android事件传递机制【Touch事件】