隐藏单选按钮图标,但不隐藏单选按钮图标

问题描述:

我需要隐藏单选按钮的图标:将其设置为不可见,但只有图标,而不是文本(setInvisible也隐藏了文本)。该图标仍应占用空间,以便文本与其他单选按钮的文字保持一致。另外,单选按钮(它的文本)应该是可点击的。隐藏单选按钮图标,但不隐藏单选按钮图标

换句话说,我想要的是图标是“透明的”(不可见),但除此之外“在那里”:可点击,占用空间。

我需要以编程方式执行此操作,而不是使用XML。

任何想法?

+1

你可以不带文字创建一个单选按钮,以及它的左侧包含单选按钮描述一个TextView。 –

+0

@MBennett谢谢,但那是XML。我需要在Java中的相当于 –

+0

@ PhilippJahoda好主意,但在我的情况下,很难申请,因为我需要将按钮从“正常”转到“无图标”,并返回 –

XML:

<RadioButton 
    android:paddingLeft="31dp" 
    android:button="@android:color/transparent" /> 

爪哇:

RadioButton myButton = (RadioButton) findViewById(R.id.radio); 
    myButton.setButtonDrawable(android.R.color.transparent); 
    myButton.setPadding(31, 0, 0, 0); 

setPadding()采用在像素表示填充INT值, 看到[email protected]根据需要,以便调节填充。

+0

@MBennett谢谢。它的工作原理除了''31dp“'(一个字符串)不允许作为'setPadding'的第一个参数。我已经将它改成了'(int)(31 * getResources()。getDisplayMetrics()。density + 0.5f'),以便从31dp转换为像素。也许你想相应地改变你的答案。缩小,也许我会玩的宽度或者我做了转换错误? –

+1

34dp(转换为像素)似乎在Android 4.0中工作在2.3需要稍大的值 –

+0

这适用于我 ' myButton.setButtonDrawable(android.R.color.transparent);'where myButton.setButtonDrawable(null);'不感谢。 – CrandellWS

设置android:button="@null"将删除默认的无线图标

<RadioButton 
    android:id="@+id/rb1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:button="@null" 
    android:text="Female" />