以编程方式更改Chip Widget样式不起作用 - Android

吾生也有涯,而知也无涯。这篇文章主要讲述以编程方式更改Chip Widget样式不起作用 - Android相关的知识,希望能为你提供帮助。
我正在用芯片做一个列表。我想要这个芯片可以选择,所以,看看q??azxswpoi我看到我可以有一个“选择芯片”。
由于我需要动态创建和添加,我必须配置特定的颜色,颜色纹波,...
所以我必须配置它是:

https://material.io/develop/android/components/chip/

我用val chip = Chip(context, null, R.style.CustomChipChoice) chip.isClickable = true chip.isCheckable = true chip.isCheckedIconVisible=false chip.height = ScreenUtils.dpToPx(40) chip.chipCornerRadius = (ScreenUtils.dpToPx(20)).toFloat() chip.chipStrokeWidth = (ScreenUtils.dpToPx(2)).toFloat() chip.setTextAppearanceResource(R.style.ChipTextStyle) return chip 尝试的是:
CustomChipChoice风格
R.style.CustomChipChoice

background_color_chip_state_list
< style name="CustomChipChoice" parent="@style/Widget.MaterialComponents.Chip.Choice"> < item name="chipBackgroundColor"> @color/background_color_chip_state_list< /item> < item name="chipStrokeColor"> @color/background_color_chip_state_list< /item> < item name="rippleColor"> @color/topic_social_pressed< /item> < /style>

stroke_color_chip_state_list
< selector xmlns:android="http://schemas.android.com/apk/res/android"> < item android:color="@color/topic_social_selected" android:state_checked="true" /> < item android:color="@color/topic_social_pressed" android:state_pressed="true" /> < item android:color="@color/topic_unselected_background" /> < /selector>

正如你所看到的,我制作芯片,可点击和可检查(隐藏我不需要的支票图标)。
【以编程方式更改Chip Widget样式不起作用 - Android】但是当我测试它时,颜色没有设置。芯片看起来像默认颜色(灰色的比例)
我可以在哪里申请或如何,这种自定义风格?
P.S:
我做了一个快速测试,看看我的CustomStyle是否格式错误/等等。
我通过xml添加了一个视图并且完美地工作了......
< ?xml version="1.0" encoding="utf-8"?> < selector xmlns:android="http://schemas.android.com/apk/res/android"> < item android:color="@color/topic_social_pressed" android:state_checked="true"/> < item android:color="@color/grey_material2" android:state_checked="false"/> < /selector>

答案要在代码中设置芯片样式,您可以尝试以下方法:
< android.support.design.chip.Chip android:id="@+id/test" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/CustomChipChoice" android:checkable="true" android:clickable="true" app:checkedIconVisible="false" android:text="Chip Test"/>


    推荐阅读