我有一项活动,我希望在一段时间内避开用户触摸按钮。
我做到了:
WindowManager.LayoutParams params = getWindow().getAttributes();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().setAttributes(params);
效果很好,但是当我回来接收触摸事件时:
WindowManager.LayoutParams params = getWindow().getAttributes();
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().setAttributes(params);
我在不可触摸的时间段内收到用户触摸的所有亲戚事件。
知道如何丢弃这些事件吗?
答案 0 :(得分:0)
我遇到了同样的问题,但我想出了一个解决方法而没有弄乱窗口标志。 试试这个:
@Override
public boolean dispatchTouchEvent (MotionEvent ev){
if(activityTouchable == false)return true;
else return super.dispatchTouchEvent(ev);
}
@Override
public boolean dispatchKeyEvent (KeyEvent event){
if(activityTouchable == false)return true;
else return super.dispatchKeyEvent(event);
}