对话框FLAG_DIM_BEHIND在Android 5.x(棒棒糖)上不起作用。

7

我使用以下代码来调暗DialogFragment的背景:

    Window window = getDialog().getWindow();
    WindowManager.LayoutParams windowParams = window.getAttributes();
    windowParams.dimAmount = 0.75f;
    windowParams.flags |= WindowManager.LayoutParams.FLAG_DIM_BEHIND;
    window.setAttributes(windowParams);

这在Kitkat及以下版本上运行良好,但在Lollipop上停止工作。我怀疑这与我的Activity使用的样式Theme.AppCompat.Light.DarkActionBar有关,该样式在5.x上使用Material Theme,而该主题中的某些内容会阻止DIM标志的工作。我尝试过调整各种主题标志,但迄今为止无效。

2个回答

4

显然,这是由我安装的Lux Dash应用程序引起的,它控制屏幕亮度。花了我一段时间才找出来! 我卸载了它,屏幕变暗问题得到解决。[不是bug]


0
许多ActionBarActivities在较新版本的Android操作系统上已被弃用。我刚刚创建了一个并在Android 5.0以及更新的5.1版本中遇到了类似的问题。所以我找到了一个解决办法(如果这对你不起作用,请尝试早期版本的Android),如果你在Android Studio中,在左侧单击项目,然后右键单击应用程序。一个菜单会弹出来,然后点击“模块设置”...在那里应该有一个构建工具滚动条,如果当前版本设置为新的beta版本,请将其设置为21.1.10,将Compile sdk版本设置为5.0,这对我有效。如果不行,可以稍微调整一下构建工具版本(新版本大约是23.0.0 rc1)。

这并不是一个可靠的解决方案。 - Eduard
我完全同意,我想我们必须等到Android(Google)推出更可靠的构建工具版本,但现在只需降级到最可靠的版本...我使用21.1.10,它对许多人在我的应用程序上使用的设备都可以正常工作。 - smerkd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接