android - 使本机启动画面取决于用户的喜好,而不是颤动中的设备主题
问题描述
我为深色和浅色模式添加了本机启动屏幕,因此当我的设备处于夜间模式时,启动屏幕的背景颜色为黑色,而当设备处于浅色模式时,颜色为白色。
问题是:
我想让颜色取决于用户,如果用户的设备处于夜间模式并且他在我的应用程序中选择灯光模式,则启动屏幕的背景颜色必须为白色
更多解释:
如果设备处于夜间模式且我的应用程序主题为浅色模式,则启动屏幕背景颜色应为白色(取决于设备上的应用程序主题)
我怎样才能从本机代码中实现这一点?
解决方案
您可以将以下标记添加到本机初始屏幕 xml 中的根元素。
android:forceDarkAllowed="false"
此标志将忽略系统暗模式。
现在要为单个活动启用/禁用夜间模式,您可以在调用 super.onCreate 方法之前在 OnCreate 方法中使用以下代码:
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO); // Disabled
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES); // Enabled
推荐阅读
- r - 用多列输出改变 rnorm
- python - 封装我的后端应用程序的动态更改和添加的部分
- docker - 配置 prometheus 以从 dockerized nodejs pod 收集自定义指标
- excel - 嵌套的 For 循环锁定 Excel
- java - 如何使用 ActiveMQ 5.x 检索创建的会话主题(和队列)
- azure-ad-b2c - 在 Azure Identity Experience Framework 中记录声明
- angular - 错误:npm install -g angular-cli npm ERR
- mongodb - Socket.io,Mongodb 将未定义返回到前端
- fortran - 带 BLAS 功能的打包存储
- python - 为什么我在 python3 中的这段代码会出现这个错误?