深色模式下的 Android styles.xml 会覆盖 .Net Maui Splash 主题样式

问题描述 投票:0回答:1

我创建了一个 .Net MAUI 应用程序,它具有本机 Android DatePicker。在 Platforms/Android/Resources 目录中,我有两个文件夹,分别是 Android DatePicker 在浅色模式和深色模式下的 styles.xml 的 value 和 value-night,除了它们设置的颜色之外,它们非常相似。然而,当我在values-night中包含styles.xml时,它似乎覆盖了Maui.SplashTheme的其他样式,导致当Android设备设置为黑暗模式。这是我目前拥有的代码:

值/styles.xml

<?xml version="1.0" encoding="UTF-8" ?>
<resources> 
    <style name="Maui.MainTheme" parent="Theme.MaterialComponents.DayNight">  
        <item name="android:datePickerDialogTheme">@style/CustomDatePickerDialog</item>  
    </style> 

    <style name="CustomDatePickerDialog" parent="Theme.AppCompat.Light">  
         <item name="android:windowIsFloating">true</item>  
         <item name="colorAccent">#ff0000</item>  
         <item name="android:colorBackground">#0000ff</item>  
    </style> 
</resources>

values-night/styles.xml

<?xml version="1.0" encoding="UTF-8" ?>
<resources> 
    <style name="Maui.MainTheme" parent="Theme.MaterialComponents.DayNight">  
        <item name="android:datePickerDialogTheme">@style/CustomDatePickerDialog</item>  
    </style> 

    <style name="CustomDatePickerDialog" parent="Theme.AppCompat.Light">  
         <item name="android:windowIsFloating">true</item>  
         <item name="colorAccent">#000000</item>  
         <item name="android:colorBackground">#00ffff</item>  
    </style> 
</resources>

并将其包含在我的 MainActivity 中,如下所示

[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize)]

DatePicker 在 .xaml 页面上创建(例如):

<DatePicker MinimumDate="01/01/2022"
            MaximumDate="12/31/2022"
            Date="06/21/2022" />

我已经实现了诸如这篇文章中提供的解决方案,但似乎没有一个解决方案可以修复暗模式下不需要的更改。任何建议将不胜感激。

android xamarin.android maui android-datepicker
1个回答
0
投票

您需要将 [Activity] 中的 Maui.SplashTheme 更改为 Maui.MainTheme

[Activity(Theme = "@style/Maui.MainTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTop, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]

并且请确保 values-night/styles.xmlvalues/styles.xml 的 buildaction 是 Android 资源

我测试了它,它在我这边工作。

© www.soinside.com 2019 - 2024. All rights reserved.