android - 清除 FLAG_NOT_TOUCHABLE 后接收过去的事件

标签 android

我有一个 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/

相关文章:

Android:即使指定了 duplicateParentState,子元素也会与其父元素共享按下状态

android - 为什么我得到 cannot resolve symbol 'R' ?

android - android URLConnection 中的 java.io.FileNotFoundException

android - 在上下文操作模式下选择时,ListView 项目在视觉上不会变为 "highlighted"

android - android智能手机3.5mm音频口RS232串口信号输入(android开发)

java - 如何在 View 中添加按键点击事件?

java - 将 HashMap 数据保存到 SQLite

android - 是否可以查看有多少人/谁注册了公开测试版?

java - ExecutorService 可能在调用线程上执行?

android - OnitemClickListener 不工作