Xamarin:默认显示警报背景颜色并不总是遵循应用程序主题

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

我有一个 Xamarin 应用程序,我在其中使用 DisplayAlert(),并且我注意到它通常会在浅色模式下显示警报,即使我处于深色模式下也是如此。在调试时,我检查了 App.Current.UserAppTheme、App.Current.RequestedTheme、AppInfo.RequestedTheme 的值,它们都设置为深色,但我的警报仍然以浅色模式显示。我无法访问 IOS 设备,所以我不确定这是否只发生在 Android 上,但这就是我正在测试的。有没有人遇到过这个问题并知道如何解决它?预先感谢。

xamarin xamarin.forms darkmode displayalert
1个回答
0
投票

所以我结合使用了这两种资源: 一个两个

MainActivity.cs
中,我添加了下面的覆盖,强制 Android 主题使用我按照 two 接受的答案中建议添加的样式进行更新。注意:我使用
AppInfo.RequestedTheme
而不是
Application.Current.RequestedTheme
,因为它在我的情况下通常是不正确的。

public override void OnConfigurationChanged(Configuration newConfig)
{
    base.OnConfigurationChanged(newConfig);

    if (Xamarin.Essentials.AppInfo.RequestedTheme == Xamarin.Essentials.AppTheme.Light)
    {
        this.SetTheme(Resource.Style.MainTheme);
        AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo;
    }
    else
    {
        this.SetTheme(Resource.Style.NightTheme);
        AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightYes;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.