2013-08-28 10 views
7

Potrzebuję ukryć ikonę przycisku radiowego: coś takiego jak ustawienie niewidzialnego, ale tylko ikona, a nie tekst (setInvisible ukrywa również tekst). Ikona nadal powinna zajmować miejsce, aby tekst był wyrównany do pozostałych przycisków opcji. Również przycisk opcji (jego tekst) powinien być klikalny.Ukryj ikonę przycisku radiowego, ale nie tekst

Innymi słowy, chcę, aby ikona była "przezroczysta" (niewidoczna), ale poza tym "bądź tam": bądź klikalny, zajmuj miejsce.

Potrzebuję zrobić to programowo, a nie XML.

Wszelkie pomysły?

+1

Można utworzyć RadioButton bez tekstu, a na lewo od niej TextView zawierający opis radiobuttons. –

+0

@MBennett Dzięki, ale to XML. Potrzebuję odpowiednika w Javie –

+0

@PhilippJahoda Dobry pomysł, ale w moim przypadku trudno go zastosować, ponieważ muszę zmienić przycisk z "normalnego" na "brak ikony" i cofnąć –

Odpowiedz

21

XML:

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

Java:

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

setPadding() przyjmuje wartości typu int, które reprezentują wyściółka w pikselach zobaczyć [email protected] tak wyregulować wyściółka wymagane.

+0

@MBennett Dzięki. Działa, z tym wyjątkiem, że '' 31dp "' (ciąg) nie jest dozwolone jako pierwszy argument dla 'setPadding'. Zmieniłem go na '(int) (31 * getResources(). GetDisplayMetrics(). Density + 0.5f', aby przekonwertować z 31dp na piksele. Może chcesz odpowiednio zmienić odpowiedź. wąski, może będę musiał grać z szerokością, czy też źle zrobiłem konwersję? –

+1

34dp (konwertowane na piksele) wydaje się działać w systemie Android 4.0. W wersji 2.3 wymagana jest nieco większa wartość –

+0

To działa dla mnie ' myButton.setButtonDrawable (android.R.color.transparent); 'gdzie' myButton.setButtonDrawable (null); 'nie dziękuję. – CrandellWS

1

ustawić android:button="@null" usunie ikonę domyślną radiowy

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