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

前端之家收集整理的这篇文章主要介绍了android – 清除FLAG_NOT_TOUCHABLE后接收过去的事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一项活动,我希望在一段时间内避开用户触摸按钮.

我这样做:

  1. WindowManager.LayoutParams params = getWindow().getAttributes();
  2. getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
  3. | WindowManager.LayoutParams.FLAG_FULLSCREEN);
  4.  
  5. getWindow().setAttributes(params);@H_301_5@
  6. 它工作得很好,但是当我回来接收触摸事件时:

  7. WindowManager.LayoutParams params = getWindow().getAttributes();
  8. getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
  9.             | WindowManager.LayoutParams.FLAG_FULLSCREEN);
  10. getWindow().setAttributes(params);@H_301_5@ 
  11.  

    我在不可触摸的时间段内收到用户触摸的所有事件亲属.

  12.  

    知道怎么放弃这个事件吗?

解决方法

我面临同样的问题,但我想出了一个解决方法,而没有弄乱窗口标志.
试试这个:
  1. @Override
  2. public boolean dispatchTouchEvent (MotionEvent ev){
  3. if(activityTouchable == false)return true;
  4. else return super.dispatchTouchEvent(ev);
  5. }
  6.  
  7. @Override
  8. public boolean dispatchKeyEvent (KeyEvent event){
  9. if(activityTouchable == false)return true;
  10. else return super.dispatchKeyEvent(event);
  11. }@H_301_5@

猜你在找的Android相关文章