Android устанавливает радиус угла контура для группы пользовательских переключателей

#android

#Android

Вопрос:

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

введите описание изображения здесь

например, когда я нажимаю на поиск или предложения в качестве конца кнопок, кнопки не имеют размера радиуса угла:

введите описание изображения здесь

введите описание изображения здесь

мой toggle_widget_background XML-файл:

 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/md_pink_A700" android:state_checked="true" />
    <item android:drawable="@color/md_pink_500" android:state_pressed="true" />
    <item android:drawable="@android:color/transparent" />
</selector>
  

теперь, как я могу установить радиус угла для левой и правой кнопок?

этот макет xml не работает:

 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item  android:drawable="@color/md_pink_A700" android:state_checked="true">
        <shape  >
            <corners
                android:bottomLeftRadius="7dp"
                android:bottomRightRadius="7dp"
                android:topLeftRadius="7dp"
                android:topRightRadius="7dp"
                />
        </shape>
    </item>

    <item  android:drawable="@color/md_pink_500" android:state_checked="true">
        <shape  >
            <corners
                android:bottomLeftRadius="7dp"
                android:bottomRightRadius="7dp"
                android:topLeftRadius="7dp"
                android:topRightRadius="7dp"
                />
        </shape>
    </item>

    <item  android:drawable="@android:color/transparent" android:state_checked="true">
        <shape  >
            <corners
                android:bottomLeftRadius="7dp"
                android:bottomRightRadius="7dp"
                android:topLeftRadius="7dp"
                android:topRightRadius="7dp"
                />
        </shape>
    </item>

</selector>
  

Ответ №1:

Используйте отдельные макеты переключателей для левых и правых переключателей. А затем используйте макеты фигур для каждого состояния. Например, для левой части используйте следующий тип макета

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="false" android:drawable="@drawable/radio_unselected_left" />
    <item android:state_checked="true" android:drawable="@drawable/radio_selected_left" />

</selector>
  

Для правой части используйте

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_checked="false" android:drawable="@drawable/radio_unselected_right" />
    <item android:state_checked="true" android:drawable="@drawable/radio_selected_right" />

</selector>
  

Чертежи представляют собой макеты, имеющие форму и цвет