我正在尝试设置单选按钮的样式,因此我创建了一个选择器。除标准单选按钮图像仍显示外,一切正常。如何删除默认单选按钮复选框。我尝试将drawable分配给空字符串,但编译器不喜欢它。
以下是我的一个选择器状态的代码:
<item android:state_checked="true" android:drawable="">
<shape>
<gradient
android:startColor="#808080"
android:centerColor="#2F2F2F"
android:endColor="#2F2F2F"
android:angle="270" />
<stroke
android:width="2dp"
android:color="@color/black" />
<corners
android:radius="5dp" />
</shape>
</item>
答案 0 :(得分:34)
在布局XML中将按钮值设置为null
android:button="@null"
答案 1 :(得分:21)
我发现无法删除选择器中的默认radiobutton复选框。我发现可以通过在单选按钮本身的样式或定义中将“button”属性赋值为null来删除它。
以下是使用样式的示例。
<RadioButton
android:id="@+id/myRadioButton"
style="@style/RadioButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/custom_radio_button"/>
<style name="RadioButtonStyle" parent="@android:style/Widget.CompoundButton">
<item name="android:background">@drawable/radiobutton_selector</item>
<item name="android:button">@null</item>
</style>
radiobutton_selector定义了一个选择器,用于在不同的检查状态下绘制按钮。这是检查状态:
<item android:state_checked="true">
<shape>
<gradient
android:startColor="@color/titleButtonCheckedGradientLight"
android:centerColor="@color/titleButtonCheckedGradientDark"
android:endColor="@color/titleButtonCheckedGradientDark"
android:angle="270" />
<stroke
android:width="1dp"
android:color="@color/titleButtonBorder" />
<corners
android:radius="5dp" />
</shape>
</item>
答案 2 :(得分:0)
如果您想通过编程方式将自定义背景设置为RadioButton,则可以这样设置
radioButton.setButtonDrawable(null);
radioButton.setBackgroundResource(R.drawable.your_custom_drawable);