【问题标题】:How to force light mode in Xamarin.Forms?如何在 Xamarin.Forms 中强制使用灯光模式?
【发布时间】:2021-01-18 19:36:30
【问题描述】:

我的应用的 UI 设计为在浅色模式下使用。但是如果手机的默认主题是暗模式,我的应用程序也会切换到暗模式,并且 UI 看起来很垃圾。所以我想强制我的应用使用灯光模式。我该怎么做?

在我使用UserAppTheme="Light"app.xaml 文件中,将内容页面的背景颜色设置为变体白色(例如#FFF#F2F3F4),但它仍然不起作用。 我什至尝试在styles.xml 中应用<style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">。但是如果手机处于黑暗模式,所有类似白色的区域也会变暗。

我在 MIUI 12 中测试过。

【问题讨论】:

  • 嗯,忽略用户的喜好,是无法通过店铺认证的。如何为黑暗模式自定义主题很容易谷歌。

标签: c# xaml xamarin xamarin.forms miui


【解决方案1】:

iOS 更新你的info.plist:

<key>UIUserInterfaceStyle</key>
<string>Light</string>

Android将MainTheme.Base的样式改为DayNight

<style name="MainTheme.Base" parent="Theme.AppCompat.DayNight.DarkActionBar">

来自James Montemagno blog的原始答案和更多详细信息

【讨论】:

【解决方案2】:

在 Android 上试试这个

Andriod 项目中:

  1. styles.xml 文件中的&lt;style&gt; 元素中添加:
    &lt;item name="android:forceDarkAllowed"&gt;false&lt;/item&gt;
<style name="MainTheme" parent="MainTheme.Base">
  <item name="android:forceDarkAllowed">false</item>
</style>
  1. MainActivity.csOnCreate 方法添加:
    AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo
protected override void OnCreate(Bundle savedInstanceState)
{
    AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo;
    base.OnCreate(savedInstanceState);
}

【讨论】:

    猜你喜欢
    • 2020-10-10
    • 1970-01-01
    • 2021-06-27
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多