DayNight Theme 有四种情况:
- 设备 -暗模式,应用程序 -暗模式
- 设备 - LIGHT模式,应用程序 - LIGHT模式
- 设备 - DARK模式,应用程序 - LIGHT模式
- 设备 - LIGHT模式,应用程序 - DARK模式
第一种和第二种情况是正常的。不幸的是,在第三种和第四种情况下并不像预期的那样。BiometricPrompt 对话框获取设备的 ui 模式。我想为 BiometricPrompt Dialog 应用应用程序 UI 模式。您可以在下面看到问题:
DayNight Theme 有四种情况:
第一种和第二种情况是正常的。不幸的是,在第三种和第四种情况下并不像预期的那样。BiometricPrompt 对话框获取设备的 ui 模式。我想为 BiometricPrompt Dialog 应用应用程序 UI 模式。您可以在下面看到问题:
有趣的问题!
从您的问题中可以清楚地看出,设备和应用程序角色在所有 4 个场景中都会切换(但仅在颜色不同时才明显)
一些要检查的资源以及我回答的基础: https ://developer.android.com/guide/topics/ui/look-and-feel/darktheme
一些背景:
身份验证布局采用软编码颜色(主题属性)构建,允许夜间主题运行(如您的图片所示)
布局未设置为从夜间主题(活动的工作)继承
显示身份验证对话框的方法使用片段(不是活动),这可能会导致它在 uiMode 下无法正常工作)。必须在清单中设置一个活动以支持 uiMode。不确定这将如何与片段一起使用
uiMode 配置更改自动重建活动
我的答案:
由于用户身份验证的高优先级,身份验证对话框的优先级高于作为“设备”的活动,而对话框后面的活动被委派了“应用程序”的角色。目前尚不清楚为什么或如何发生这种情况。我会尝试在您实施 DayNight 主题的过程中切换设备和应用程序的角色。