2013-08-28 56 views
7

我需要隱藏單選按鈕的圖標:將其設置爲不可見,但只有圖標,而不是文本(setInvisible也隱藏了文本)。該圖標仍應占用空間,以便文本與其他單選按鈕的文字保持一致。另外,單選按鈕(它的文本)應該是可點擊的。隱藏單選按鈕圖標,但不隱藏單選按鈕圖標

換句話說,我想要的是圖標是「透明的」(不可見),但除此之外「在那裏」:可點擊,佔用空間。

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

任何想法?

+1

你可以不帶文字創建一個單選按鈕,以及它的左側包含單選按鈕描述一個TextView。 –

+0

@MBennett謝謝,但那是XML。我需要在Java中的相當於 –

+0

@ PhilippJahoda好主意,但在我的情況下,很難申請,因爲我需要將按鈕從「正常」轉到「無圖標」,並返回 –

回答

21

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

1

設置android:button="@null"將刪除默認的無線圖標

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