-2

我想为我的应用程序实现夜间模式,但不想使用任何兼容库。我将资源放在 values-night 文件夹中并使用下一个代码:

UiModeManager systemService = (UiModeManager) this.getSystemService(UI_MODE_SERVICE);
systemService.setNightMode(UiModeManager.MODE_NIGHT_YES);

根据文档,它适用于 API >22 并且确实如此。是否有强制使用 API 15-22 上 -night 文件夹中的资源的解决方法?

4

2 回答 2

2

文档中UiModeManager.setNightMode()

注意:在 API 22 及更低版本中,对夜间模式的更改仅在设备上启用car或模式时才有效。desk从 API 23 开始,对夜间模式的更改始终有效。

也许您可以使用其中一种 UI 模式?

于 2017-09-18T20:55:48.517 回答
1

AppCompat 库支持它。我不知道你为什么不想使用它。我引用Chris Bane 的博客

正如您可能在 Support Lib 23.2.0 博客文章中看到的那样,AppCompat 现在有了一个新的主题系列:Theme.AppCompat.DayNight。

这些主题所做的是根据一天中的时间在 Theme.AppCompat(深色)和 Theme.AppCompat.Light(浅色)之间切换。这对您的用户有很多好处,特别是如果您是一个内容应用程序(它似乎已成为 Reddit 客户端的标准功能)。需要注意的一点是,此功能实际上仅在 API v14 及更高版本的设备上运行时才有效,在此之前的设备上它将默认为浅色主题。

于 2017-09-18T21:09:51.610 回答