gpt4 book ai didi

android - 如何使用 AppCompat 应用程序主题通过 "android:theme"属性设置chipBackgroundColor

转载 作者:行者123 更新时间:2023-12-04 10:01:04 25 4
gpt4 key购买 nike

我有一个 ChipGroup有一个 Chip物品 :

<com.google.android.material.chip.ChipGroup
android:id="@+id/chip_group"
android:layout_width="0dp"
android:theme="@style/DarkThemeTag"
android:layout_height="wrap_content">

<com.google.android.material.chip.Chip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/tag_text_dimen"
app:chipIcon="@null"
app:chipIconEnabled="false"/>

如您所见,我设置了 DarkThemeTag关于 ChipGroup 的主题.
<style name="DarkThemeTag" parent="Theme.MaterialComponents.Light.Bridge">
<item name="chipBackgroundColor">@color/tag_chip_dark_checkable</item>
<item name="android:textColor">@android:color/white</item>
</style>

我的应用主题继承自 AppCompat ,不是来自 MaterialComponents :
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
....
</style>

根据 Chip official page它继承自 MaterialComponents .
@Mikail Sharin说应用程序的主题应该继承自 MaterialComponents .
this文章指出,如果您不能将您的应用程序更改为继承自 MaterialComponents而你想坚持 AppCompat您应该使用 之一桥梁主题 ,所以这就是我所做的。

问题在于 chipBackgroundColor属性不适用于 ChipGroup 的 child 。 android:textColor然而。

你们有什么想法可能是错的吗?

注意:如果我在 Chip 上应用相同的样式它有效的元素

最佳答案

您应该使用 您应用中的桥接主题 :

<style name="AppTheme" parent="Theme.MaterialComponents.NoActionBar.Bridge">

您可以使用 android:theme在小部件中 覆盖某些属性 喜欢颜色不应用样式:
      <com.google.android.material.chip.ChipGroup
android:theme="@style/DarkThemeTag"
..>

和:
<style name="DarkThemeTag" parent="">
<item name="android:textColor">@android:color/white</item>
</style>

然后你可以申请 自定义样式 在小部件中为:
        <com.google.android.material.chip.Chip
style="@style/my_chip"
../>

和:
<style name="my_chip" parent="@style/Widget.MaterialComponents.Chip.Action">
<item name="chipBackgroundColor">@color/tag_chip_dark_checkable</item>
</style>

或者您可以简单地将它应用到您的布局中:
        <com.google.android.material.chip.Chip
app:chipBackgroundColor="....."
../>

如果您想 覆盖 使用 android:theme 的芯片背景颜色你应该使用:
        <com.google.android.material.chip.Chip
android:theme="@style/custom_color"
../>

和:
<style name="custom_color" parent="">
<item name="colorPrimary">....</item>
<item name="colorOnSurface">....</item>
</style>

由于 chipBackgroundColor 中的默认选择器使用这些颜色。

关于android - 如何使用 AppCompat 应用程序主题通过 "android:theme"属性设置chipBackgroundColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61818356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com