RadioButton фокусировать форму фона - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу добавить эффект фокуса ripple ко всему RadioButton, но с ним происходит нечто странное, когда я пытаюсь использовать эффект ripple с подсветкой.На рисунке слева - то, что я получаю, а справа - то, что я хочу:

RadioBtton example

background_drawable:

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/colorAccent">
    <item android:id="@android:id/mask">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white"/>
        </shape>
    </item>
</ripple>

стили.xml

<style name="RadioButtonStyle" parent="Widget.AppCompat.CompoundButton.RadioButton">
        <item name="android:background">@drawable/radio_button_background</item>
    </style>

Это происходит только если я пытаюсь использовать эффект ripple, а не если я пытаюсь использовать только shape с selector и state_focused=true в качестве фона.На данный момент мой обходной путь - использовать класс warpper View для RadioButton и установить в него фон.Есть ли способ получить фон, как на картинке, но без дополнительного кода?Спасибо.

1 Ответ

0 голосов
/ 22 ноября 2018

Решение состоит в том, чтобы установить для атрибута button значение null и установить атрибут drawableStart в стилях для переключателя:

<style name="RadioButtonStyle" parent="Widget.AppCompat.CompoundButton.RadioButton">
        <item name="android:button">@null</item>
        <item name="android:drawableStart">@drawable/radio_button_selector</item>
        <item name="android:drawablePadding">4dp</item>
        <item name="android:background">@drawable/radio_button_background</item>
        <item name="android:gravity">center_vertical</item>
        <item name="android:paddingStart">8dp</item>
        <item name="android:paddingEnd">8dp</item>
        <item name="android:paddingTop">11dp</item>
        <item name="android:paddingBottom">11dp</item>
    </style>

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="radioButtonStyle">@style/RadioButtonStyle</item>
        <item name="android:radioButtonStyle">@style/RadioButtonStyle</item>
    </style>

После этого фокус работает в соответствии с аспектами, и Вы можете добавитьфон для радио кнопки, как вы хотите

...