8

编辑:我设法通过在styles.xml中设置以下属性来使其工作,如下所示:

  <android.support.design.chip.Chip
                    android:id="@+id/chipFollowing"
                    style="@style/ChipCustomStyle" ...>

样式.xml

<style name="ChipCustomStyle" parent="Widget.MaterialComponents.Chip.Action">
    <item name="checkedIconEnabled">false</item>
    <item name="checkedIcon">@null</item>
</style>

把它留在这里,以防有人遇到相同的 WTF :)


原始问题:

我不想在我的芯片上显示选中的图标。我试过设置

        app:checkedIcon="@null"
        app:checkedIconVisible="false"

在 Chip 和 ChipGroup 元素中。它甚至不会编译:/

当我在 Chip 元素上设置它时,我得到:错误:找不到属性 'com.companyname.projectname:checkedIconVisible'。

这是我的芯片 XML:

            <android.support.design.chip.Chip
                android:id="@+id/chipFollowing"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checkable="true"
                android:clickable="true"
                android:focusable="true"
                android:textAppearance="@style/ChipFilledUncheckedText"
                app:checkedIcon="@null"
                app:checkedIconVisible="false"
                app:chipBackgroundColor="@color/bg_chip_state_list"
                app:chipText="@string/chip_following" />

我正在使用来自 28 Support Library 版本的材料组件。我错过了一些明显的东西吗?:/

4

3 回答 3

16

我设法通过在 styles.xml 中设置以下属性来使其工作,如下所示:

  <android.support.design.chip.Chip
                    android:id="@+id/chipFollowing"
                    style="@style/ChipCustomStyle" ...>

样式.xml

<style name="ChipCustomStyle" parent="Widget.MaterialComponents.Chip.Action">
    <item name="checkedIconEnabled">false</item>
    <item name="checkedIcon">@null</item>
</style>
于 2018-08-08T13:43:08.413 回答
3

您可以只使用 setCheckable 和 setCheckedIconVisible

例子:

for (int i = 0; i < array.size(); i++) {
KeyValueSelectedEntity letter = array.get(i);
if (getContext() != null) {
    Chip chip = new Chip(getContext());
    chip.setId(letter.getId());
    chip.setText(letter.getName());
    chip.setTag(i);
    chip.setCheckable(true);
    chip.setCheckedIconVisible(false);
    chip.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean selected) {
            Log.d(TAG, "onCheckedChanged");
            int tag = (int) compoundButton.getTag();
            ...
}}
于 2021-01-27T16:44:32.740 回答
0

将您的应用主题从更改Theme.AppCompat.Theme.MaterialComponents.

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="chipIconTint">@color/colorAccent</item>
</style>
于 2020-01-02T16:06:05.397 回答