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