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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以编程方式更改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>

正如你所看到的,我制作芯片,可点击和可检查(隐藏我不需要的支票图标)。

但是当我测试它时,颜色没有设置。芯片看起来像默认颜色(灰色的比例)

我可以在哪里申请或如何,这种自定义风格?

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"/>

以上是关于以编程方式更改Chip Widget样式不起作用 - Android的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式更改视图尺寸时,自动布局似乎不起作用

UIPageViewController - 以编程方式更改页面在 iPhone 4s/5/5s 上不起作用

更改对齐方式后如何重绘列表控件?

iPad方向以编程方式不起作用

以编程方式创建 UIView 在 Xcode 11.1 中不起作用

无法以编程方式更改工厂颜色的任何解决方案