android - 从材料轮廓按钮更改颜色不起作用
问题描述
我想更改活动切换按钮的颜色。但是仅仅改变了rippleColor就会有所不同。我希望自定义活动按钮的背景颜色和文本颜色。
<style name="ToggleButtonGroupStyle" parent="Widget.MaterialComponents.Button.OutlinedButton">
<item name="rippleColor">@color/colorAccent</item>
</style>
在下面的 toggleButtonGroup 中,我从上面使用了这种样式:
<com.google.android.material.button.MaterialButtonToggleGroup
android:id="@+id/priority_btn_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentLeft="true"
app:selectionRequired="true"
app:singleSelection="true"
app:checkedButton="@+id/btn_one"
>
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_one"
style="@style/ToggleButtonGroupStyle"
android:layout_width="@dimen/priority_btn_width"
android:layout_height="wrap_content"
android:shadowColor="@color/project_text"
android:text="0" />
<com.google.android.material.button.MaterialButton
style="@style/ToggleButtonGroupStyle"
android:layout_width="@dimen/priority_btn_width"
android:layout_height="wrap_content"
android:text="!" />
<com.google.android.material.button.MaterialButton
style="@style/ToggleButtonGroupStyle"
android:layout_width="@dimen/priority_btn_width"
android:layout_height="wrap_content"
android:text="!!" />
<com.google.android.material.button.MaterialButton
style="@style/ToggleButtonGroupStyle"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="!!!" />
</com.google.android.material.button.MaterialButtonToggleGroup>
谁能给我一个提示这里的问题是什么?谢谢 :)
解决方案
选中按钮的背景颜色基于colorPrimary
属性。
您可以使用:
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_one"
style="?attr/materialButtonOutlinedStyle"
android:theme="@style/ThemeOverlay.Custom.Button"
和:
<style name="ThemeOverlay.Custom.Button" parent="">
<item name="colorPrimary">@color/....</item>
</style>
或者您可以使用自定义样式:
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_one"
style="@style/ToggleButtonGroupStyle"
和:
<style name="ToggleButtonGroupStyle" parent="Widget.MaterialComponents.Button.OutlinedButton">
<item name="backgroundTint">@color/custom_selector</item>
</style>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/..." android:state_checked="true"/> <!-- selected color -->
<item android:color="@android:color/transparent" android:state_checked="false"/>
</selector>
推荐阅读
- vue.js - 尝试在 vue 中传递 url 并在之后添加 API 字符串
- python - 如何正确循环遍历 matplotlib 图形的子图以显示每条线的最终 y 轴值?
- python - 在 Python 文档字符串中记录复杂的嵌套字典参数的最佳实践?
- python - 了解如何使用 tf.nn.conv2d 函数
- acumatica - Acumatica 未在 DAC 生成器中显示表格列
- node.js - 链接获取、获取、映射、过滤、获取、获取
- javascript - 使用 css 或 js 强制适合字体高度
- typescript - 有没有办法在 TypeScript 中实例化受约束的泛型类型的实例?
- javascript - 重构 JSON 数据
- sql-server - 从 SQL Server 2008 中删除 XML 节点