如何在android.support.design.chip.Chip中设置文本颜色?

Lor*_*esi 2 java android colors android-chips

<android.support.design.chip.Chip
     style="@style/Widget.MaterialComponents.Chip.Choice"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_margin="4dp"
     android:checked="true"
     android:padding="4dp"
     android:textAppearance="?android:textAppearanceSmall"
     app:chipBackgroundColor="@color/selector"
     app:chipText="Test"
     app:chipIconEnabled="true"
     app:chipIconSize="20dp" />
Run Code Online (Sandbox Code Playgroud)

在XML中,没有类似的属性:

chipTextColor
Run Code Online (Sandbox Code Playgroud)

以编程方式SpannableString不起作用:

SpannableStringBuilder builder = new SpannableStringBuilder();
String numeric = getString(R.string.patient_list_order_date);
SpannableString whiteSpannable= new SpannableString(numeric);
whiteSpannable.setSpan(new ForegroundColorSpan(Color.WHITE), 0, numeric.length(), 0);
builder.append(whiteSpannable);
chip.setChipText(builder);
Run Code Online (Sandbox Code Playgroud)

小智 5

我设法像这样在28.0.0-alpha3中设置了文本颜色:

chip.setChipText(text);
chip.setTextAppearanceResource(R.style.ChipTextStyle_Selected);
Run Code Online (Sandbox Code Playgroud)

并使用以下参数创建样式:

<style name="ChipTextStyle_Selected">
    <item name="android:textSize">13sp</item>
    <item name="android:textColor">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)


Adr*_*zin 5

您可以简单地在 xml 中使用 android:textColor,例如:

    <com.google.android.material.chip.Chip
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@android:color/white"/>
Run Code Online (Sandbox Code Playgroud)

或者以编程方式您可以使用:

val chip = view.findViewById<Chip>(R.id.chip)
chip.setTextColor(Color.WHITE)
Run Code Online (Sandbox Code Playgroud)