RadioButton 样式为普通按钮
Posted
技术标签:
【中文标题】RadioButton 样式为普通按钮【英文标题】:RadioButton styled as a normal button 【发布时间】:2017-03-17 03:35:02 【问题描述】:我正在尝试将我的 RadioButton 设置为普通按钮的样式,并支持按钮上的颜色更改,当单击其中一个按钮时会产生涟漪效果。
现在发生的情况是,所有按钮都是灰色的,当它们被点击时它们会变成紫色,但不会永久地将颜色变为紫色 - 这是我要解决的问题。
这就是按钮现在的样子
whatever.xml 中的 RadioButton
<RadioButton
style="@style/Widget.AppCompat.Button"
android:id="@+id/product_size2"
android:layout_
android:layout_
android:text="S"
android:button="@null"
android:textColor="@color/material_light_white"/>
style.xml 中的相关项
<item name="android:colorButtonNormal">@color/material_grey_700</item>
<item name="android:colorControlHighlight">@color/material_purple_500</item>
我希望按钮在被选中时保持紫色 - 解决方案?
【问题讨论】:
我认为您应该为此任务使用后台状态选择器 你能详细说明一下吗? 好的,会尝试回答 您是否尝试过为具有不同状态的按钮创建自定义 xml 样式? ***.com/a/29848987/5348534 我看到了这些 xml 打包的答案——我认为一定有更优雅的解决方案 【参考方案1】:radiobutton_background.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_checked="true" android:drawable="@color/material_purple_500" />
<item android:state_checked="false" android:drawable="@color/material_grey_700" />
</selector>
并将其用作背景:
android:background="@drawable/radiobutton_background" />
【讨论】:
不起作用,发生的是背景覆盖了样式,有效地杀死了样式(创建了一个没有高程的立方体)并且没有涟漪效果以上是关于RadioButton 样式为普通按钮的主要内容,如果未能解决你的问题,请参考以下文章
WPF 让一组 Button 实现 RadioButton 的当前样式效果
WPF RadioButton/ToggleButton 样式