如何在 Xamarin.Forms 中强制使用灯光模式?
How to force light mode in Xamarin.Forms?
我的应用 UI 设计为在轻量模式下使用。但是如果 phone 的默认主题是黑暗模式,我的应用程序也会切换到黑暗模式并且 UI 看起来很垃圾。所以我想强制我的应用程序使用灯光模式。我该怎么做?
在我的 app.xaml
文件中,我使用了 UserAppTheme="Light"
,将内容页面的背景颜色设置为不同的白色(例如 #FFF
、#F2F3F4
),但仍然没有行得通。
我什至尝试在 styles.xml
中应用 <style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
。但是如果phone处于深色模式,所有像白色的区域也会变暗。
我在 MIUI 12.
测试过
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
的更多详细信息
试试这个 Android
在Andriod项目中:
- 在styles.xml文件中
<style>
元素添加:
<item name="android:forceDarkAllowed">false</item>
<style name="MainTheme" parent="MainTheme.Base">
<item name="android:forceDarkAllowed">false</item>
</style>
- 在MainActivity.cs中在
OnCreate
方法中添加:
AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo
protected override void OnCreate(Bundle savedInstanceState)
{
AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo;
base.OnCreate(savedInstanceState);
}
我的应用 UI 设计为在轻量模式下使用。但是如果 phone 的默认主题是黑暗模式,我的应用程序也会切换到黑暗模式并且 UI 看起来很垃圾。所以我想强制我的应用程序使用灯光模式。我该怎么做?
在我的 app.xaml
文件中,我使用了 UserAppTheme="Light"
,将内容页面的背景颜色设置为不同的白色(例如 #FFF
、#F2F3F4
),但仍然没有行得通。
我什至尝试在 styles.xml
中应用 <style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
。但是如果phone处于深色模式,所有像白色的区域也会变暗。
我在 MIUI 12.
测试过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
的更多详细信息试试这个 Android
在Andriod项目中:
- 在styles.xml文件中
<style>
元素添加:
<item name="android:forceDarkAllowed">false</item>
<style name="MainTheme" parent="MainTheme.Base">
<item name="android:forceDarkAllowed">false</item>
</style>
- 在MainActivity.cs中在
OnCreate
方法中添加:
AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo
protected override void OnCreate(Bundle savedInstanceState)
{
AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo;
base.OnCreate(savedInstanceState);
}