问题标签 [android-darkmode]

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 投票
1 回答
1346 浏览

android - 如何强制使 WebView 父级变暗以便我可以使用 WebSettingsCompat.FORCE_DARK_AUTO?

我已经按照这个超级有用的答案https://stackoverflow.com/a/61643614/704836的说明进行操作,并且我在WebView实现中使用了暗模式但是WebSettingsCompat.FORCE_DARK_AUTO在我使用时似乎不起作用AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES),这让我相信文档是在谈论设置暗模式的不同方式吗?

这里的文档https://developer.android.com/reference/androidx/webkit/WebSettingsCompat#FORCE_DARK_AUTO说:

根据 WebView 父视图的状态启用强制变暗。 如果 WebView 父视图被自动强制变暗(@see android.view.View#setForceDarkAllowed),则将呈现 WebView 内容以模拟深色主题。未附加到视图层次结构的 WebView 不会被反转。

我已经尝试过父布局webView.setForceDarkAllowed(true)android:forceDarkAllowed="true"theWebView并没有帮助。但是一旦我改变WebSettingsCompat.FORCE_DARK_ON它,它就会起作用。

那么我该如何使用FORCE_DARK_AUTO呢?

谢谢。

0 投票
1 回答
151 浏览

java - Android 记住黑暗主题

我正在尝试为我的应用创建一个深色主题。到目前为止一切顺利,但是当我关闭应用程序时,应用程序不记得设置的深色主题。

我使用以下方法更改深色主题:

在 MainActivity 中,我尝试通过调用方法来设置模式,setDayNightMode()但这总是设置MODE_NIGHT_FOLLOW_SYSTEM.

似乎SharedPreferences settings由 定义的this.getSharedPreferences(getResources().getString(R.string.dark_theme_preference_key), MODE_PRIVATE)总是返回follow_system 值。你知道如何记住应用程序中的暗模式吗?

0 投票
0 回答
50 浏览

flutter - 如何调用返回 Future 的异步函数在三元函数中根据返回值有不同的颜色?

我想在我的颤振计算器应用程序中使用暗模式。我使用动态主题插件从暗模式切换到亮模式。

以前,我使用 _darkmode 变量,通过它我为深色和浅色模式自定义按钮的颜色。但是每当我关闭我的应用程序时,它的颜色就会出现切换或不同颜色的不匹配组合。因此,我想使用共享偏好来解决这个问题。因此,如果 SP 中不存在 _darkMode 变量,则最初使用 False 定义它。并根据 SharedPreference 获取数据我想设置按钮的颜色。此外,我使用了一个开关来设置和更改共享首选项。

所以这是我的代码:
我最初定义 _darkmode 的初始状态。

要在共享首选项上设置暗模式变量的值:

要从共享偏好中获取暗模式变量的值:

所以,现在我想在这里调用这个getBoolValuesSP()以便我可以根据 _darkMode 变量的值动态更改按钮的颜色:

但是我收到一个错误,例如“无法将'bool'类型的值分配给'Future'类型的变量”

我正在使用一个开关来切换黑暗和光明模式。

谁能告诉我如何调用颜色中的getBoolValuesSP以及如何使用共享首选项动态更改按钮的颜色?

0 投票
0 回答
338 浏览

android - 如何正确使暗模式设置菜单正常工作?

所以我在 Udacity 上完成了 Google 的 Kotlin 课程的第一课,然后我继续对应用程序进行自己的更改,使它们看起来更好(只是为了学习,我不关心应用程序)。我进行了一些更改,例如添加暗模式和自定义 UI。

我希望暗模式菜单能够正常工作,比如当我点击light mode它时应该重新创建启用亮模式的活动,并且还应该检查亮模式MenutItem。我还希望应用程序记住设置,这样如果我Follow System在应用程序的一个会话期间选择然后关闭应用程序,即使在打开应用程序后它也应该继续跟随系统。我认为这应该完成,SharedPreferences但我不知道如何正确地做到这一点。正如您在下面附加的视频中看到的那样,当我单击任何暗模式设置选项时,它们不会自动更改设置,我需要重新启动应用程序,然后我才能看到匹配的活动中的任何更改在关闭应用程序之前选择的任何选项。

注意:我想提一下,我对 Android 开发或 Kotlin 不是很有经验,我是 2 个月前才开始学习的。我还想提一下,我不关心应用程序本身,但我更愿意使用这个应用程序来学习如何完成工作。如果我不学习如何做这些事情,我不在乎我的应用程序是否具备我希望它拥有的所有功能。我关心的不是应用程序,而是我从中获得的知识,也就是说,如果您有答案,请解释一下它是如何工作的。

此视频显示了应用程序的行为:https ://drive.google.com/file/d/1SnN0r351OGF4xQNCtI1wtgouSFVROKzg/view?usp=sharing

toolbar我在主要(也是唯一的)活动的布局文件中添加了一个。这是布局资源的 xml 代码:

这是我用于同一活动的 Kotlin 代码:

这个要点包括我认为正确回答这个问题所需的其他文件,即:菜单资源文件、颜色资源文件和样式资源文件:https://gist.github.com/sbeve72/36a71919f1f965c5dcd466db1e099b4f.js"

0 投票
1 回答
454 浏览

android - 清除导航返回堆栈和重新创建活动

我正在开发一个具有LoginFragmentand的应用程序HomeFragment。我正在使用喷气背包导航组件来处理片段导航。首先,在该用户完成LoginFragment我调用的登录过程后,我将popBackStack()用户导航到HomeFragment. 当用户单击dark mode按钮时出现问题。我呼吁recreate()活动。我需要再次恢复 NavHost 但我清除了StartDestination那个 navHost。

我能做些什么来解决这个问题?

注意:我尝试使用popUpTo;但这对我不起作用。

0 投票
1 回答
589 浏览

android-studio - 重新创建活动后在 super.onCreate(savedInstanceState) 上崩溃

我的项目中有两个活动ActivityOneMainActivity. 我开始MainActivity使用意图,ActivityOne然后我在活动中切换暗模式开关MainActivity并调用recreate()活动。但重新创建时在线MainActivity崩溃。super.onCreate(savedInstanceState)

androidx片段版本:1.2.5

生命周期版本:2.2.0

主要活动:

日志猫:

0 投票
1 回答
1815 浏览

android - Android - 检测用户的操作系统主题是深色还是浅色?

我需要知道用户是否在操作系统级别启用了深色主题,以便我可以在我的应用程序中自动启用深色主题。(不强制使用深色模式)

0 投票
0 回答
217 浏览

android - 当手机处于深色模式但应用处于浅色模式时,应用程序使用 -night drawable

我已经使用以下方法实现了暗模式:

它在 Application 类的创建过程中应用(以及当用户想要在应用程序设置中的模式之间滑动时)。

一切正常,除了一个继续遵循电话模式的可绘制对象。第一次启动应用程序时,drawable在light文件夹中,但是如果我在手机上将暗模式打开->关闭->打开,然后再次启动应用程序,这次drawable将是黑色的,即使其他一切都处于灯光模式。

我不知道它是否已链接,但它是唯一一个在 png、hdpi、mdpi、xhdpi、xxhdpi 和 xxxhdpi 中的可绘制对象(适用于明暗模式)

可绘制的暗模式

我不能将 SVG 用于这个可绘制对象,我没有找到解决方案。

我的应用主题是 Theme.AppCompat.DayNight.DarkActionBar

请注意,它也不能以其他方式工作,如果我的应用程序处于暗模式并且手机处于亮模式,则可绘制对象将是亮的。

0 投票
3 回答
2179 浏览

android - 如何根据android系统设置禁用日夜主题的自动更改?

到目前为止,我从 google 了解到,您必须使用Theme.Appcompat.Daynight或 Material Daynight 主题才能使您的应用程序支持暗模式。并且您需要在valuesvalues-night目录中使用不同的styles.xml 。我不愿意让我的应用支持深色主题。但是,当我将 android 系统主题(从通知面板)更改为暗色时,我的应用程序变暗了。我使用Theme.Appcompat.Light作为基本主题,没有为我的应用程序支持暗模式做任何事情,但我的应用程序仍然变暗。我第一次使用cardview,不知道是不是这个原因,因为我是android编程的新手。您的小小帮助将非常受欢迎。请在此处查看屏幕截图:

系统暗模式关闭

系统暗模式开启

0 投票
1 回答
581 浏览

android - 如何避免 Material 主题中的强制暗模式?

我正在使用 Material 主题。我希望我的应用程序仅使用浅色主题(目前我们没有任何深色模式计划)。有些设备会强制应用程序使用暗模式,我想避免这种情况。

在 SO 上看到了这篇文章,不幸的是它对我不起作用。

那么,如何解决这个问题呢?

样式.xml