2016-08-01 49 views
1

我有一个服务WindowManger和我添加一些标志:的Android windowManger删除标志

params = new WindowManager.LayoutParams(
    WindowManager.LayoutParams.MATCH_PARENT, 
    WindowManager.LayoutParams.WRAP_CONTENT, 
    WindowManager.LayoutParams.TYPE_PHONE, 
    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, 
    PixelFormat.TRANSLUCENT); 

    params.gravity = Gravity.TOP | Gravity.LEFT; 

    params.y = 0; //topPadding 
    params.x = 0; 
    windowManager.updateViewLayout(view, params); 

如何删除WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE另一部分以后呢?

+0

从这段代码?只要删除你不想要的国旗和|之后。 –

+0

@GuilhermeP是稍后在另一部分删除它 – medo

+0

@GabeSechan你的意思是我如何从代码中删除它? – medo

回答

1

好,做编程后

layoutParams.flags = layourParams.flags & ~flag_you_don't_want; 

这将关闭只有你想要落位。然后请求一个新的布局以使屏幕上显示更改。

这种技术被称为“ANDing out”位。

+0

它是什么'layoutParams'? – medo

+0

'params.flags = params.flags&〜WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;'它不能被移除 – medo

+4

'params.flags&=〜WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; windowManager.updateViewLayout(view,params);' _its now now_ – medo