web-dev-qa-db-ja.com

選択した色をcom.google.Android.material.chip.Chipに設定します

選択したcom.google.Android.material.chip.Chipの色を設定するにはどうすればよいですか?デフォルトのグレーにしたくない。これは単一の選択チップグループです。

enter image description 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>
27
Jeffrey Liu

どういうわけかAndroid:textColor in stylesは機能しません。プログラムでチップのテキストの色を変更する必要があります(プログラムでチップを作成するため)。

val chip = Chip(context)
// Apply custom MyChipChoice style to the chip
val drawable = ChipDrawable.createFromAttributes(context!!, null, 0, R.style.MyChipChoice)
chip.setChipDrawable(drawable)
// Apply text color to the chip
val colorStateList = ContextCompat.getColorStateList(context!!, R.color.my_choice_chip_text_color)
chip.setTextColor(colorStateList)
0
Nhon Nguyen