如何在使用白天主题时更改布局的背景/文本颜色



我正在使用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>

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

如果您遵循Android的颜色主题系统,那么您可以使用:

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

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

您可以在此处找到更多详细信息。

最新更新