首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法更改com.google.android.material.chip.Chip更改按下颜色

无法更改com.google.android.material.chip.Chip更改按下颜色
EN

Stack Overflow用户
提问于 2019-05-08 11:36:23
回答 1查看 447关注 0票数 1

我编程芯片(材料组件),使用setChipBackgroundColor改变芯片状态按下颜色,但它有两种按色效果,我想去掉默认的按灰颜色

  1. 我的定制媒体(#daecff)
  2. 默认按下颜色(灰色)

谢谢

https://i.imgur.com/5z94oUA.jpg

代码语言:javascript
复制
Chip chip = new Chip(context);
chip.setText(name);
chip.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
chip.setTextColor(ContextCompat.getColor(context, R.color.chip_color));
chip.setOnClickListener(onClickListener);
chip.setChipStrokeColorResource(R.color.chip_color);
chip.setChipStrokeWidth(5);
chip.setChipBackgroundColor(
    ContextCompat.getColorStateList(context, R.color.bg_chip)
);
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" android:color="#daecff"/>
    <item android:color="@color/white"/>

</selector>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-24 08:05:32

您必须使用setRippleColor方法:

代码语言:javascript
复制
chip.setRippleColor(ContextCompat.getColorStateList(this,R.color.my_selector));

有这样的东西:

代码语言:javascript
复制
<selector xmlns:android="http://schemas.android.com/apk/res/android">    
  <item android:alpha="@dimen/mtrl_low_ripple_pressed_alpha" android:color="?attr/colorPrimary" android:state_pressed="true"/>
  <item android:alpha="@dimen/mtrl_low_ripple_focused_alpha" android:color="?attr/colorOnSurface" android:state_focused="true" android:state_hovered="true"/>
  <item android:alpha="@dimen/mtrl_low_ripple_focused_alpha" android:color="?attr/colorOnSurface" android:state_focused="true"/>
  <item android:alpha="@dimen/mtrl_low_ripple_hovered_alpha" android:color="?attr/colorOnSurface" android:state_hovered="true"/>
  <item android:alpha="@dimen/mtrl_low_ripple_default_alpha" android:color="?attr/colorOnSurface"/>
</selector>

此外,还必须检查setChipBackgroundColor方法中使用的选择器,特别是用于selected状态的颜色:

代码语言:javascript
复制
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <!-- 24% opacity -->
  <item android:alpha="0.24" android:color="@color/custom" android:state_enabled="true" android:state_selected="true"/>
  ....
</selector>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56039898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档