【问题标题】:How to change the background/text color of a layout when daynight theme is used使用昼夜主题时如何更改布局的背景/文本颜色
【发布时间】:2019-08-14 11:24:53
【问题描述】:

我正在使用 Theme.AppCompat.DayNight 并且我想自定义某个布局背景和文本颜色以根据白天或夜间模式进行更改。

到目前为止,这是我尝试过的:

<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/primaryDarkColorAmber</item>
    <item name="colorPrimaryDark">@color/primaryDarkColorAmber</item>
    <item name="colorControlActivated">@color/primaryDarkColorAmber</item>
</style>

<style name="PopUpTheme" parent="AppTheme">
    <!-- layout custom theme there's no darkBackground value...!! -->
    <item name="android:background">@color/popup_background</item>
</style>

【问题讨论】:

  • 请澄清您所说的“白天或夜间模式”是什么意思。您的意思是天黑了还是您的应用处于夜间模式?

标签: java android xml android-layout layout


【解决方案1】:

首先创建 res/values-night 这个目录,然后添加与 res/value 相同的文件,您可以复制并替换为颜色,然后当您更改白天或夜晚主题时,您可以根据自己的风格获取颜色

【讨论】:

【解决方案2】:

如果你关注Android的Color theming System,那么你可以使用:

<View
...
android:background="?android:attr/colorBackground"
.../>

同样,对于文本,您可以使用?android:attr/textColorPrimary,对于图标,您可以使用?attr/colorControlNormal。这样您就不需要创建单独的值文件。

您可以找到更多详细信息here

【讨论】:

  • 谢谢。我一直有透明的背景片段,前一个片段显示在下面,我一直在努力获得一种适用于白天和黑夜的背景颜色,这成功了。
猜你喜欢
  • 2021-03-11
  • 2023-04-01
  • 1970-01-01
  • 2018-09-15
  • 1970-01-01
  • 1970-01-01
  • 2015-03-29
  • 1970-01-01
  • 2023-03-12
相关资源
最近更新 更多