在 Xamarin Android 中设置布局背景 - 覆盖暗模式
Posted
技术标签:
【中文标题】在 Xamarin Android 中设置布局背景 - 覆盖暗模式【英文标题】:Setting background of layout in Xamarin Android - overriding Dark Mode 【发布时间】:2021-10-04 03:41:18 【问题描述】:我正在尝试为我的 android 应用设置背景。
但是用android:background
属性设置它不起作用:
<GridLayout ...
android:background="#ffffff00">
我什至在父元素上设置了背景:
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:background="#ffffff00">
但它仍然显示我只是黑暗的背景。
我在我的手机(如果重要的话是小米)上开启了黑暗模式。当我关闭此模式时,背景会按预期工作。
所以我想知道如何在应用中覆盖暗模式?
看起来这个暗模式已经覆盖了这个属性,这是不可能的。
【问题讨论】:
【参考方案1】:你是如何让你的应用支持暗模式的?
我遵循docs ,只是将应用的主题(通常在res/values/styles.xml
中找到)设置为继承自DayNight
主题:
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
灯光模式
深色模式
我这边的代码按预期工作。(黄色部分是 GridLayout)
建议:
-
在空白项目中测试。
在另一台设备上测试。
【讨论】:
其实我并没有做任何事情来支持应用程序中的暗模式。 你能在模拟器或其他设备上试试这个吗?【参考方案2】:根据@Colex-MSFT 的回答,我解决了:
他对我应该提出的建议是正确的
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
在res/values/styles.xml)
。然后我再次检查它并发现该项目是自动创建的,文件中包含以下部分:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
Customize your theme here.
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
(这些颜色刚刚在colors.xml
文件中定义)所以,我只是注释掉了这个(可能会删除)并留下建议的行并且它可以工作 - 在我的应用程序中不再强制使用暗模式:)
【讨论】:
以上是关于在 Xamarin Android 中设置布局背景 - 覆盖暗模式的主要内容,如果未能解决你的问题,请参考以下文章
在 Rider IDE 中设置 Android Xamarin 解决方案未检测到框架