【问题标题】:Setting background of layout in Xamarin Android - overriding Dark Mode在 Xamarin Android 中设置布局背景 - 覆盖暗模式
【发布时间】: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_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff00">

但它仍然显示我只是黑暗的背景。

我在我的手机(如果重要的话是小米)上开启了黑暗模式。当我关闭此模式时,背景会按预期工作。

所以我想知道如何在应用中覆盖暗模式?

看起来这个暗模式已经覆盖了这个属性,这是不可能的。

【问题讨论】:

    标签: c# android xamarin xamarin.android


    【解决方案1】:

    你是如何让你的应用支持暗模式的?

    我遵循docs ,只是将应用的主题(通常在res/values/styles.xml 中找到)设置为继承自DayNight 主题:

    <style name="AppTheme" parent="Theme.AppCompat.DayNight">
    
    

    灯光模式

    深色模式

    我这边的代码按预期工作。(黄色部分是 GridLayout)


    建议

    1. 在空白项目中测试。
    2. 在另一台设备上测试。

    【讨论】:

    • 其实我并没有做任何事情来支持应用程序中的暗模式。
    • 你能在模拟器或其他设备上试试这个吗?
    【解决方案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 文件中定义)所以,我只是注释掉了这个(可能会删除)并留下建议的行并且它可以工作 - 在我的应用程序中不再强制使用暗模式:)

    【讨论】:

      猜你喜欢
      • 2020-08-22
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 2014-03-24
      相关资源
      最近更新 更多