问题标签 [android-dark-theme]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
34243 浏览

android - 如何以编程方式启用夜间模式?

我正在寻找一种使用 Android 代码以编程方式启用夜间模式的方法:

我的屏幕上没有任何变化,夜间模式仍处于禁用状态。根据这个链接

无需启用 carMode 或deskMode。我在 Android Studio 上有以下 logcat:

0 投票
1 回答
4009 浏览

android - android 9.0 中的深色主题改变了我的应用程序布局丑陋

我只是在设计我的布局而没有预料到任何问题,但是一天 android 9.0 推出,我带来了手机并在其中安装了我的应用程序并尝试在夜间模式打开我的应用程序打开它,我开始看到白色布局变化在黑暗中,我的思绪被阻塞了。我想知道如何禁用主题。

我需要我的布局,因为它是设计好的。即使主题得到应用,它也应该是相同的。

在此处输入图像描述

0 投票
3 回答
2680 浏览

android - WebView 重置 UiMode 并打破黑暗主题

我们的应用程序依赖于AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)让我们从values/colorsvalues-night/colors

但是每次我们尝试使用 时WebView,它都会从重置 UiMode 开始,我们的应用会混淆为我们的主题选择哪些颜色值

有些人在这里这里详细讨论了这个问题

有没有人遇到过类似的问题?

0 投票
1 回答
420 浏览

android - setDefaultNightMode() 仅在 PreferenceFragment 中的第二次调用后有效

我正在努力在我的应用程序中实现暗模式。现在我尝试使用PreferenceFragment嵌套在AppCompatActivity. 该应用程序的行为是这样的,从作为默认值的浅色主题开始:

  • 如果我在 ListPreference 中选择“深色”,则首选项的摘要会更改,但 UI 在此活动和所有其他活动中保持浅色。
  • 如果我第二次选择“深色”,活动将切换到深色主题,以及后台堆栈中的其他活动。
  • 当我想切换回浅色主题时,反过来也会发生同样的事情。

所以基本上一切正常,但您必须在 ListPreference 中选择所需的值两次。ListPreference 的代码:

到目前为止我尝试了什么:

  • 声明getActivity.recreate()前调用return true;
  • 在短暂getActivity.recreate()延迟后使用Handler
  • 当布尔值为 true时调用父 Activitythis.recreate()的方法onResume()changedDesignSetting

我感谢进一步的帮助。

0 投票
3 回答
8150 浏览

android - 如果 Android 设备处于暗模式,我如何以编程方式检测?

我正在尝试为我的 Android 应用程序支持 Android Q Dark 主题,但我不知道如何根据我当前所在的主题导入不同的资产。

我使用官方 DayNight 主题来制作深色/浅色版本,并且对于可绘制对象非常容易指向 XML,它会根据启用的内容从 values 或 values-night 中选择正确的值。

我想做类似的事情,根据主题它会加载资产“priceTag_light.png”或“priceTag_dark.png”。

有没有办法得到那面旗帜?

0 投票
0 回答
1002 浏览

android - 应用更新后保持/恢复默认暗模式设置

我正在实施称为暗模式的新 Android 10 功能,这里有一些文档。它建议使用这条线进行切换:

这工作正常(打开,关闭,系统) - 我正在安装调试应用程序,在我的应用程序设置中设置正确的模式,所有Activities重新启动都根据需要主题。我可以退出应用程序,强制关闭,返回,我的设置仍然存在。问题是当我再次构建 apk 并安装时(即使没有任何代码更改,只需在 AS 中使用 Shift + F10)然后根据来源getDefaultNightMode()返回MODE_NIGHT_UNSPECIFIED默认设置和回退到系统依赖。看起来未来的应用更新将重置暗模式。我怎样才能防止这种情况发生,我错过了什么吗?

PS。是的,我可以自己存储设置模式并强制恢复何时AppCompatDelegate返回默认模式,但请从上面的链接文档中查看此注释:

注意:从 AppCompat v1.1.0 开始,setDefaultNightMode() 会自动重新创建任何已启动的活动。

我不想在每次更新后首次启动时(可能)闪烁 UI...

0 投票
1 回答
5114 浏览

android - Android Q 中的深色主题配置更改

我想在我的应用程序中实现 android 10 深色主题,我有以下情况:

SYSTEM_DEFAULT, NIGHT_MODE, LIGHT_MODE

问题是当我从应用程序内部将主题从夜间或浅色更改为 system_default 时,它无法理解系统是处于浅色模式还是深色模式。所以主题不会更新。

我试过谷歌的黑暗主题 https://developer.android.com/guide/topics/ui/look-and-feel/darktheme

并且实施配置对我仍然没有好处,因为如果用户在系统默认设置为天时将日期更改为系统默认设置,我不想重新创建我的活动。

无论如何我可以处理这个吗?

编辑:

0 投票
1 回答
1025 浏览

android - configuration.setLocale(locale) 不适用于 AppCompatDelegate.setDefaultNightMode

如果我设置AppCompatDelegate.setDefaultNightMode了暗模式并且系统不暗,则Configuration.setLocale不起作用。我更改了语言环境,例如从Ento It,所有字符串仍然以系统语言显示。

如果我设置相同的系统夜间模式(Android 10)没有问题。android 9 或更低版本也存在同样的问题:如果我在应用程序中设置了暗模式并更改了上下文语言,则活动会根据系统语言显示文本。

0 投票
1 回答
3494 浏览

android - 深色主题更改时,Android 10 通知颜色不会更改

我有一些操作的通知。我使用Notification.Builder为动作和图标着色设置颜色。这是创建通知的完整代码。

颜色在和 中R.color.notification_accent都声明了,并且有不同的颜色。该应用程序的基本主题也从. 当在设备中启用/禁用深色主题时,整个应用程序在主题之间正确更改。valuesvalues-nightTheme.MaterialComponents.DayNight

当我创建通知时,它总是正确创建,所以当深色主题打开时,使用颜色values-night,当它关闭时使用values颜色。

问题是当主题发生变化并且通知已经可见时。我可以看到通知实际上正在发生变化,因为背景从暗变为亮,但动作的颜色没有改变。

我猜这是因为颜色不是通知主题的一部分,但我不确定如何处理,或者它是否是Notification.Builder中的错误。

编辑:此行为发生在运行 API 29 的模拟器上。在设备上运行应用程序时,行为是正确的,颜色会发生变化。我正在回答自己说要使用设备的问题。

0 投票
1 回答
3933 浏览

android - Flutter:根据设备明暗模式更改应用程序亮度

设置

在颤振应用程序的主类中:

您可以将ThemeData亮度设置为暗或亮。(我认为仅从 Android OS 10.0,API 29 开始)您可以在设备设置中选择屏幕色调(浅色 | 深色)。

示例(OP7 专业版)

设置 > 自定义 > 色调 > 多彩 | 浅色 |深色

当处于暗模式并打开某些应用程序(例如 chrome)时,应用程序设置为暗。打开其他应用程序不会发生这种情况。

问题:

1)如果您不设置任何ThemeData亮度,您的应用程序亮度是否会根据设备色调设置动态更新?(不能自己测试这个atm)

2)如果不是,您如何ThemeData根据设备屏幕色调设置动态更改亮度?