我有一项活动,我希望在一段时间内避开用户触摸按钮.
我这样做:
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); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。