【问题标题】:Background Recyclerview shows incorrectly after changing to Light/ Dark theme from Android App从 Android 应用程序更改为浅色/深色主题后,后台 Recyclerview 显示不正确
【发布时间】:2021-08-20 09:55:36
【问题描述】:

有人可以帮助我吗? 我正在android应用中开发Light and Dark主题功能,一切正常,但是Recyclerview的背景显示不正确。

xml文件的根背景是白色的,我没有为xml中的recyclerview设置背景。但是,从 Light 更改为 Dark 或 Dark 更改为 Right=> recyclerview 的背景后自动更改为一种奇怪的颜色(此颜色在我的 color.xml 资源中没有看到)。我尝试在代码和xml文件中将Recyclerview的背景设置为@null或透明,但recyclerview的背景并没有去除那种奇怪的颜色。

所以任何人都知道确切的原因,请帮助我,非常感谢。谢谢 enter image description hereenter image description here

【问题讨论】:

    标签: android android-recyclerview background light android-dark-theme


    【解决方案1】:

    我猜你正在使用DayNight 主题。如果是这样,您应该必须在res 中的themes.xml 文件夹中调用一个,如前所述,另一个是扩展名为(night)。在那里,您可以在两个 xml 文件中定义颜色。它具有相同的名称但不同的颜色值,如下所示:

    <style name="AppTheme" parent="Theme.AppCompat.DayNight">
        <item name="colorPrimaryDark">#ffffff</item> <!-- you normally shouldn't hardcode color -->
    </style> 
    

    你的文件夹(night)也一样:

    <style name="AppTheme" parent="Theme.AppCompat.DayNight">
        <item name="colorPrimaryDark">#000000</item> <!-- you normally shouldn't hardcode color -->
    </style> 
    

    这个想法是有一个包含 2 种颜色的属性名称,并在需要时采用正确的一种。为了进一步了解,我建议看看这个reference 以更熟悉主题和样式。现在您正确设置了DayNight 文件,您可以在recyclerView 中使用它来实现它,如下所示:

    android:background="?attr/colorPrimaryDark"
    

    另一个技巧是在多个 colors.xml 文件中制作自定义颜色,以使它们具有更独特的用途。在这种情况下,colorPrimaryDark 会影响您的整个应用程序。还建议修改widgets 的布局和视觉效果,使其仅对这些内容生效。 (例如您的recyclerView)。在我的应用程序中,我使用colorPrimaryDark 作为所有背景(对于更简洁的设计应该相同)。我想你明白了关键点。看看网络和这个论坛,你会发现你的最终设计策略。干杯! :)

    【讨论】:

    • 感谢您的帮助,但是,我按照您的指示进行操作,但没有成功。
    猜你喜欢
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 2021-05-07
    • 2022-08-12
    • 1970-01-01
    • 2021-05-29
    相关资源
    最近更新 更多