android - Xamarin 应用程序在开启暗模式的 Android 设备上自动切换到暗模式

标签 android xamarin xamarin.forms xamarin.android android-darkmode

在启用深色主题的 Android 手机上,我的 Xamarin.Forms 应用程序(Shell 项目)会自动切换到深色主题。我不希望这种情况发生。我尝试了多种方法来禁用它,但都没有奏效。
知道有什么问题吗?
AppShell.xaml 中代码的有趣部分是:

<?xml version="1.0" encoding="UTF-8"?>
<Shell xmlns="http://xamarin.com/schemas/2014/forms" 
       xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
       xmlns:retrogamez="clr-namespace:RetroGameZ"
       Title="RetroGameZ"
       x:Class="RetroGameZ.AppShell">
       

    <Shell.Resources>
        <ResourceDictionary>
            <Style x:Key="BaseStyle" TargetType="Element">
                <Setter Property="Shell.BackgroundColor" Value="#049DBF" />
                <Setter Property="Shell.ForegroundColor" Value="White" />
                <Setter Property="Shell.TitleColor" Value="White" />
                <Setter Property="Shell.DisabledColor" Value="#03A6A6" />
                <Setter Property="Shell.UnselectedColor" Value="#D3D3D3" />
                <Setter Property="Shell.TabBarBackgroundColor" Value="#049DBF" />
                <Setter Property="Shell.TabBarForegroundColor" Value="White"/>
                <Setter Property="Shell.TabBarUnselectedColor" Value="#D3D3D3"/>
                <Setter Property="Shell.TabBarTitleColor" Value="White"/>
            </Style>
            <Style TargetType="TabBar" BasedOn="{StaticResource BaseStyle}" />
            <Style TargetType="FlyoutItem" BasedOn="{StaticResource BaseStyle}" />
        </ResourceDictionary>
    </Shell.Resources>
后来只有个别组件。

最佳答案

找到适用于 Android 的解决方案:
MainActivity.cs , 在 base.OnCreate() 之前,添加这一行:

AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo;

关于android - Xamarin 应用程序在开启暗模式的 Android 设备上自动切换到暗模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64755827/

相关文章:

xaml - 如何在 Xamarin.Forms 中将图像居中而不拉伸(stretch)它

c# - 配置 intellitest 以仅使用 Visual Studio 2015 RC 中的一个测试项目

xamarin - 如何在Xamarin.Forms中创建多行TextBox

android - Play developer console “An unexpected error occurred. Please try again later.” in 2017 尝试打开控制台的任何部分时发生

android - 无法从 SD 卡启动歌曲

android - 为什么我的手机无法访问计算机网络?

ios - 尝试与 Azure 移动服务同步时出现 IMobileServiceClient.PullAsync 死锁

Android Studio 2.3 Canary 在 'Launch Standalone SDK Manager' 中缺少 'SDK Manager' 选项

c# - 无法在 UWP 中调试 .NET Standard 2.0 DLL

C# 将 XML 解析为不同的列表