android - 设置 com.google.android.material.chip.Chip 选中的颜色

标签 android material-design material-components-android android-chips

如何设置选中的 com.google.android.material.chip.Chip 颜色?我不希望它是默认的灰色。这是单选芯片组。

enter image description here

原始文档 here

<com.google.android.material.chip.ChipGroup
    android:id="@+id/chipgroup"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:layout_marginEnd="16dp"
    app:checkedChip="@+id/chip_program"
    app:chipSpacingHorizontal="32dp"
    app:chipSpacingVertical="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/detailText"
    app:singleSelection="true">

    <com.google.android.material.chip.Chip
        android:id="@+id/chip_program"
        style="@style/Widget.MaterialComponents.Chip.Choice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Program"
        app:chipEndPadding="16dp"
        app:chipStartPadding="16dp" />

    <com.google.android.material.chip.Chip
        android:id="@+id/chip_normal"
        style="@style/Widget.MaterialComponents.Chip.Choice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/program_normal"
        app:chipEndPadding="16dp"
        app:chipStartPadding="16dp" />
</com.google.android.material.chip.ChipGroup>

最佳答案

只需设置一个属性 app:chipBackgroundColor 并将颜色状态列表传递给它:

<android.support.design.chip.Chip
    android:id="@+id/test"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:checkable="true"
    android:clickable="true"
    android:focusable="true"
    app:chipBackgroundColor="@color/bg_chip_state_list"
    app:chipText="Test" />

bg_chip_state_list 看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/colorSecondaryLight" android:state_checked="true" />
    <item android:color="@color/colorPrimaryDark" />
</selector>

然而,我还必须将 android:clickable 设置为 true 才能使其正常工作

关于android - 设置 com.google.android.material.chip.Chip 选中的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51089150/

相关文章:

android - Kotlin 创建一个 snackbar

Android MaterialButton 无法正确显示

java - 在 alertDialog 中显示 Recyclerview

polymer - 元素深度与 polymer - Material 设计

android - 带边框的 Material 设计按钮

css - Mat-Toolbar 对齐元素(左、中、右)

Android Chip Custom Height Or Padding - Chipgroup 间距

android - 如何将 JSON 字符串转换为 Int 然后转换为 Arg Bundle?

Android 优点和缺点 : Event Bus and RxJava

java - 如何在android(Java)中设置lottiefiles动画的循环次数?