【问题标题】:Get active flags on Android Window在 Android Window 上获取活动标志
【发布时间】:2014-08-04 11:24:53
【问题描述】:

是否可以通过编程方式获取窗口上当前处于活动状态的标志?

我们可以通过以下方式启用标志:

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

api 是否提供了一种获取当前活动标志列表的方法? 谢谢

【问题讨论】:

    标签: android window flags window-managers


    【解决方案1】:

    你可以使用:

    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) ...
    

    【讨论】:

    • 是的,但它返回给我一个与 nthing 无关的 int ......:S
    • @iGio90 int 包含你所有的标志。你只需要按位运算来提取它们。编辑答案,检查示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 2013-11-16
    • 2020-12-24
    • 2012-04-11
    • 2010-09-11
    • 2013-08-22
    • 1970-01-01
    相关资源
    最近更新 更多