gpt4 book ai didi

java - windowbackground 在深色和浅色主题中不起作用

转载 作者:行者123 更新时间:2023-11-30 12:04:51 25 4
gpt4 key购买 nike

我有一个主题,用户可以选择浅色或深色,一切正常,但是有两个问题:

  1. 当我[在深色/浅色主题]中打开应用程序时,首先显示一个白色页面,然后应用程序使用深色主题
  2. 当我更改主题时,首先出现黑屏

我尝试更改背景但没有用,我更改了它的颜色,还使用了可绘制的形状。无论如何,它不起作用并且对两者都使用一种颜色。

样式.xml

 <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar"/>

值/主题.xml

<style name="Theme.MaterialComponents.DayNight.NoActionBar"
parent="Theme.MaterialComponents.Light.NoActionBar">

<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowBackground">@drawable/window_background</item>
</style>

values-night/themes.xml

<style name="Theme.MaterialComponents.DayNight.NoActionBar"
parent="Theme.MaterialComponents.NoActionBar">

<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/TabBackground</item>
<item name="colorAccent">@color/green_inactive</item>
<item name="android:windowBackground">@drawable/window_background_dark</item>

</style>

window 背景

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#64b5f6"/>
</shape>

windows_background_dark

和上面的代码类似,只是颜色不同

这就是我加载主题的方式

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Prefs.getIsDarkMode(getApplicationContext()))
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
else
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);

setContentView(R.layout.activity_main);
}

最佳答案

无需为背景创建单独的文件。您可以在黑暗和夜晚的 xml 文件本身中执行此操作。请查看以下链接。我已经通过此视频实现了夜间模式。

https://youtu.be/-qsHE3TpJqw如果您在执行过程中遇到任何问题,请留言。

关于java - windowbackground 在深色和浅色主题中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56857924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com