有这样一个 RadioButton:
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@+id/leftRadioButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/radio_group_stroke_color"
android:layout_marginStart="4dp"
android:layout_marginTop="4dp"
android:duplicateParentState="true" />
我需要更改RadioButton. 我知道可以这样做:
android:buttonTint="@color/common_blue"
但这就是它的颜色完全改变的方式,我只需要它在某种状态下改变。我试过这个选项:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/background_engaging" android:state_checked="true" />
<item android:color="@color/transparent" android:state_checked="false" />
</selector>

一个有趣的问题:) 我不得不深入挖掘,但我想我找到了你需要的东西。有这样的东西ColorStateList。我真的不明白你的带选择器的文件在哪里,所以我会告诉你我是怎么理解的——创建一个文件夹
res/color/selector.xml,然后在那里写你的代码(这里是我的代码,因为我没有你的颜色) :然后在xml中应用它:
选中后圆圈会改变颜色(这里我不太明白你是否这样做)。还有第二个选项 - 以编程方式。同时,最好不要在xml中设置buttonTint。制作变量:
拿起你的按钮并将这个色调列表设置为它:
我发现了类似的问题,也许它们会有所帮助:1 , 2。文档。
PS +1 来自我的一个有趣的问题:D