2016-08-01 51 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