首页 > 解决方案 > 使本机启动画面取决于用户的喜好,而不是颤动中的设备主题

问题描述

我为深色和浅色模式添加了本机启动屏幕,因此当我的设备处于夜间模式时,启动屏幕的背景颜色为黑色,而当设备处于浅色模式时,颜色为白色。

问题是:

我想让颜色取决于用户,如果用户的设备处于夜间模式并且他在我的应用程序中选择灯光模式,则启动屏幕的背景颜色必须为白色

更多解释:

如果设备处于夜间模式且我的应用程序主题为浅色模式,则启动屏幕背景颜色应为白色(取决于设备上的应用程序主题)

我怎样才能从本机代码中实现这一点?

标签: androidflutterthemessplash-screenlaunch-screen

解决方案


您可以将以下标记添加到本机初始屏幕 xml 中的根元素。

android:forceDarkAllowed="false"

此标志将忽略系统暗模式。

现在要为单个活动启用/禁用夜间模式,您可以在调用 super.onCreate 方法之前在 OnCreate 方法中使用以下代码:

getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO); // Disabled
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES); // Enabled

推荐阅读