我有一项 Activity ,希望避免一段时间内用户触摸按钮。

我做这个:

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);

我在不可触摸的时间内收到了所有与用户的亲戚相关的事件。

知道如何丢弃此事件吗?

最佳答案

我遇到了同样的问题,但我想出了一种解决方法,而又不会弄乱窗口标志。
尝试这个:

@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);
}

关于android - 清除FLAG_NOT_TOUCHABLE后接收过去的事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9031392/

10-11 00:42