在 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
现在在<manifest>
中添加这一行:
<manifest>
...
<application android:theme="@android:style/Theme.DeviceDefault.Light"></application>
...
</manifest>
【讨论】:
以上是关于在 Xamarin.Forms 中将默认的深色 Android 主题更改为白色?的主要内容,如果未能解决你的问题,请参考以下文章
在 Xamarin.Forms 上的 XAML 中将 BindingContext 设置为 ViewModel
Xamarin.Forms:有没有办法在xaml中设置派生样式的默认字体(系列)?
使用 PlatformConfiguration (Xamarin.Forms 2.3.3) 在 UWP 中将工具栏移动到底部