【发布时间】:2021-03-14 03:12:44
【问题描述】:
我已经在我的 android 应用程序中实现了深色 ui,一切正常,但我有一个启动器活动,其中 windowBackground 采用这样的样式
<style name="AppTheme.Launcher" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="android:windowBackground">@drawable/l_launch_screen</item>
</style>
l_launch_screen 就是这个
<?xml version="1.0" encoding="utf-8"?>
<!-- The android:opacity=”opaque” line — this is critical in preventing a flash of black as your theme transitions. -->
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque">
<!-- The background color, preferably the same as your normal theme -->
<item android:drawable="@color/colorPrimaryDark"/>
<!-- Your product logo - 144dp color version of your app icon -->
<item>
<bitmap
android:src="@drawable/app_round_icon"
android:gravity="center"/>
</item>
</layer-list>
在这个colorPrimaryDark 有两种颜色,一种是夜晚,另一种是简单
现在的问题是,当android通过在android q通知面板中选择Dark theme激活深色主题时,android:windowBackground正在选择夜间颜色,但是当Dark theme被android禁用并且通过设置在我的应用程序中选择了深色主题时在应用类中
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
android:windowBackground 没有选择夜间颜色,但所有其他活动都在完美选择夜间颜色我已经看到与 WhatsApp 应用程序相同的行为所以这是一个错误还是我做错了什么我也尝试定义不同夜间样式和可绘制样式,但发生同样的问题
【问题讨论】:
-
你已经告诉它不管主题使用什么颜色:
@color/colorPrimaryDark -
@PrinceAli colorPrimaryDark 有两种颜色,一种是夜色,一种是底色
-
那你不能用@color ,怎么把背景应用到其他屏幕上?
-
我将 android:windowBackground 用于我的启动器活动,而不用于其他活动
-
发布您的日夜主题风格。如果可能的话,一些 xml 代码,你也可以将颜色更改为一些背景
标签: android whatsapp android-dark-theme