我试图更改RadioButton上已选中按钮的drawable,但没有显示任何内容;设置drawable只会删除已存在的默认值。
我使用堆栈溢出来尝试找到解决方案但是当我尝试实现它时,没有可绘制的显示。我的选择器似乎很好,因为当我设置显示我圈子的单选按钮的background
时。
我确定这是一个非常明显的问题,我会因为没有看到而拍打自己;任何人都可以找出问题所在吗?
我的收音机按钮
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Left"
android:checked="false"
android:button="@drawable/radio_button" />
<RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@drawable/radio_button"
android:text="Right"
android:checked="true" />
</RadioGroup>
使用我的选择器
没有我的选择器
我的选择器XML
<?xml version="1.0" encoding="UTF-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/radio_button_checked"
android:state_checked="true" />
<item
android:drawable="@drawable/radio_button_unchecked" />
</selector>
radio_button_checked.xml
<?xml version="1.0" encoding="UTF-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/primary_button_color"/>
<stroke
android:width="2px"
android:color="#000000"/>
</shape>
radio_button_unchecked.xml
<?xml version="1.0" encoding="UTF-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke
android:width="2px"
android:color="#000000"/>
</shape>
答案 0 :(得分:2)
我认为你看不到任何东西,因为你的抽屉没有任何尺寸。
尝试在xml的形状下定义<size android:width="60dp" android:height="60dp"/>
。
答案 1 :(得分:1)
如您所见,RadioButton
扩展了CompoundButton
。当你不使用你的选择器时,有一个默认的drawable.Let&#39s看到它的构造函数。
public CompoundButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
final TypedArray a = context.obtainStyledAttributes(
attrs, com.android.internal.R.styleable.CompoundButton, defStyleAttr, defStyleRes);
final Drawable d = a.getDrawable(com.android.internal.R.styleable.CompoundButton_button);
if (d != null) {
setButtonDrawable(d);
}
默认的drawable是R.styleable.CompoundButton_button
,我的设备上有intrinsicWidth = 96px
和intrinsicHeight = 96px
。
当您使用选择器时,drawable
&#39; intrinsicWidth = -1px
和intrinsicHeight = -1px
会让您无法看到它。
您应该定义可绘制的大小。
<?xml version="1.0" encoding="UTF-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<size android:width="24dp" android:height="24dp"/>
<stroke
android:width="2px"
android:color="#000000"/>
</shape>