web-dev-qa-db-ja.com

Androidウィンドウでアクティブなフラグを取得する

ウィンドウで現在アクティブなフラグをプログラムで取得することは可能ですか?

次の方法でフラグを有効にできます。

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

APIは、現在アクティブなフラグのリストを取得する方法を提供しますか?ありがとう

25
iGio90

次を使用できます。

_int flags = getWindow().getAttributes().flags;
_

Window.setFlags()実装で使用されていることがわかります。

_public void setFlags(int flags, int mask) {
    final WindowManager.LayoutParams attrs = getAttributes();
    attrs.flags = (attrs.flags&~mask) | (flags&mask);
    ...
_

個々のフラグが設定されているかどうかを判断するには、ビット単位のとを使用する必要があります。例えば:

_if ((flags & WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION) != 0) ...
_
62
matiash