2012-02-15 12 views
5

Próbuję ustawić styl przycisku, a więc utworzyłem selektor. Wszystko działa, ale standardowy obraz przycisku radiowego nadal się wyświetla. Jak usunąć domyślne pole wyboru przycisku opcji. Próbowałem przypisać ciąg do pustego łańcucha, ale kompilator go nie lubi.usuń domyślne pole wyboru przycisku opcji, gdy używasz niestandardowego selektora

Oto kod jednego z moich stanów selektora:

<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> 
+1

Dlaczego starasz się usunąć rozciągliwej wszystko razem? Czy możesz zastąpić to czymś, co pasuje do twoich potrzeb? – Flynn

+0

Chcę funkcjonalność przycisku opcji, ale chcę, aby wyglądał jak przycisk. W szczególności chcę mieć dwa przyciski obok siebie, które przełączają się nawzajem. Jeden z przycisków pojawia się, a drugi w górę. Czy istnieje lepsze rozwiązanie niż to, dokąd zmierzam? –

+2

Naprawdę znalazłem, że mogę usunąć domyślne pole wyboru z następującym 'android: button =" @ null "' –

Odpowiedz

19

Okazało się, że nie mogę usunąć pole wyboru domyślnego radiobutton w selektorze. Zauważyłem, że można go usunąć, przypisując właściwość "button" do wartości null, w stylu lub definicji samego radiobutonu.

Oto przykład użycia stylu.

<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 definiuje selektor, który rysuje przycisk w różnych zaznaczonych stanach. Oto sprawdzony stan:

<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> 
+0

Twój kod nie ma funkcji radiGroup.getCheckedRadioButtonId() ......... – Prativa

+0

najlepsza odpowiedź do tej pory – Devon

26

ustawiona wartość przycisk null w układzie XML

android:button="@null" 
+3

Dzięki za odpowiedź. Znalazłem to również, jak widać z mojego komentarza z 15 lutego 2012 roku w moim pytaniu. –

Powiązane problemy