Нет никаких изменений в стиле, когда вы нажимаете или выключаете Radiobutton - PullRequest
1 голос
/ 18 марта 2020

Я хочу сделать стиль RadioButton при нажатии или выключении, используя @ drawable / radio_selected , как 2 изображения ниже.

Style RadioButton when clicking is off

Style RadioButton when clicking is on

<RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="100dp"
        android:background="@drawable/radio_selected"
        tools:ignore="UnusedAttribute" />

В этом чертеже я использую селектор, чтобы создать условие, когда переключатель включен или выключен.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/rb_on" android:state_checked="true"/>
    <item android:drawable="@drawable/rb_off" android:state_checked="false"/>
</selector>

rb_on. xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="5dp"
    android:height="5dp"
    android:viewportWidth="19"
    android:viewportHeight="19">
  <path
      android:pathData="M9.5,9.5m-6.5,0a6.5,6.5 0,1 1,13 0a6.5,6.5 0,1 1,-13 0"
      android:strokeWidth="6"
      android:fillColor="#ffffff"
      android:strokeColor="#FF8830"/>
</vector>

rb_off. xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="5dp"
    android:height="5dp"
    android:viewportWidth="19"
    android:viewportHeight="19">
  <path
      android:pathData="M9.5,9.5m-8.5,0a8.5,8.5 0,1 1,17 0a8.5,8.5 0,1 1,-17 0"
      android:strokeWidth="2"
      android:fillColor="#ffffff"
      android:strokeColor="#FF8830"/>
</vector>

Но это не работает. Результат так, как это.

Radiobutton style results when off

Radiobutton style results when on

Я добавил несколько элементов, таких как " android: state_pressed ", et c, но результаты те же. Как это решить?

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Если вы хотите изменить значок RadioButton, вам нужно использовать android:button

Используйте это

android:button="@drawable/radio_selected"

Вместо этого

 android:background="@drawable/radio_selected"

ОБРАЗЕЦ КОДА

<RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="100dp"
        android:button="@drawable/radio_selected"
        tools:ignore="UnusedAttribute" />
0 голосов
/ 18 марта 2020

Используйте кнопку вместо фона в xml

android:background="@drawable/radio_selected" 

с

android:button="@drawable/radio_selected"
...