在 Xamarin.Forms 中将默认的深色 Android 主题更改为白色?

Posted

技术标签:

【中文标题】在 Xamarin.Forms 中将默认的深色 Android 主题更改为白色?【英文标题】:Changing the default dark Android theme to white in Xamarin.Forms? 【发布时间】:2014-07-28 22:15:55 【问题描述】:

Xamarin.Forms 确实会生成 灰色 Android 应用程序。我想在 android 中有一个 浅色/白色主题(就像在 ios 目标中一样)。

是否存在简单的切换方式?

【问题讨论】:

【参考方案1】:

您可以将 Theme 参数放入主要活动的 ApplicationAttribute 中

喜欢这个

[assembly: Application(Icon = "@drawable/Icon", Theme = "@android:style/Theme.Holo.Light")]

或者你可以把这个字符串放到AndroidManifest.xml中

<application android:theme="@android:style/Theme.Holo.Light" />

【讨论】:

太棒了!但随后又出现了另一个问题:***.com/questions/24173718/… 考虑到表单是为 Android、iOS 和 Windows Phone 设计的,它在其他应用程序类型上的表现如何 @MelloG 只有android效果,其他平台没有效果。 如果我不想强制执行主题而是与用户设备上当前的 Android 主题保持一致怎么办?有什么方法可以让我的应用(尤其是 Xamarin.Forms 应用)同步到系统主题? @JustAMartin 未经测试,但 Theme.DeviceDefault 应该是您的情况developer.android.com/reference/android/…【参考方案2】:

ad1Dima 的回答让我大部分都成功了,但我发现在我的环境中我需要一些稍微不同的东西。这就是我放入“MainActivity.cs”文件以更改主题的内容。

    [Activity( Theme="@android:style/Theme.Holo.Light",Label = "HealthTechnologies", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
    public class MainActivity : AndroidActivity

请注意,这里唯一的新功能是添加了“Theme=...”。其他所有内容都已在 MainActivity.cs 文件中。

【讨论】:

【参考方案3】:

打开安卓清单文件 app_name->属性->AndroidManifest.xml

现在在&lt;manifest&gt; 中添加这一行:

<manifest>
    ...
    <application android:theme="@android:style/Theme.DeviceDefault.Light"></application>
    ...
</manifest>

【讨论】:

以上是关于在 Xamarin.Forms 中将默认的深色 Android 主题更改为白色?的主要内容,如果未能解决你的问题,请参考以下文章

在 Xamarin.Forms 上的 XAML 中将 BindingContext 设置为 ViewModel

Xamarin.Forms:有没有办法在xaml中设置派生样式的默认字体(系列)?

在 Xamarin.Forms 中将图像裁剪为正方形

使用 PlatformConfiguration (Xamarin.Forms 2.3.3) 在 UWP 中将工具栏移动到底部

Xamarin.Forms Shell 在汉堡菜单中将 Flyout Menu 与 MenuItem 组合并排序

在Xamarin Forms中将日期时间保存到数据库