#android #radio-button
#Android #переключатель
Вопрос:
Я разрабатываю радиокнопки. Прямо сейчас это выглядит так
У меня есть вопросы:
Я хочу показать это в круге, как я буду выполнять это действие?
Я хочу, чтобы он выглядел одинаково по ширине и высоте, прямо сейчас он wrap_content
включен.
Вот мой код
<RadioGroup
android:id="@ id/llButtons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@ id/btnEigene"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:checked="true"
android:drawableTop="@drawable/ic_account"
android:drawablePadding="5dp"
android:gravity="center"
android:paddingStart="16dp"
android:paddingTop="5dp"
android:paddingEnd="16dp"
android:paddingBottom="5dp"
android:text="@string/Eigene"
android:textColor="@color/radio_flat_text_selector" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@ id/btnKontakte"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:drawableTop="@drawable/ic_contacts"
android:drawablePadding="5dp"
android:gravity="center"
android:paddingStart="16dp"
android:paddingTop="5dp"
android:paddingEnd="16dp"
android:paddingBottom="5dp"
android:text="@string/Kontakte"
android:textColor="@color/radio_flat_text_selector" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@ id/btnAlle"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:drawableTop="@drawable/ic_all"
android:drawablePadding="5dp"
android:gravity="center"
android:paddingStart="16dp"
android:paddingTop="5dp"
android:paddingEnd="16dp"
android:paddingBottom="5dp"
android:text="@string/Alle"
android:textColor="@color/radio_flat_text_selector" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@ id/btnGeloescht"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="4dp"
android:layout_marginLeft="6dp"
android:layout_marginTop="0dp"
android:layout_marginRight="6dp"
android:button="@android:color/transparent"
android:contentDescription="@string/deletedquestions"
android:drawableTop="@drawable/selectorbtnquestions"
android:drawablePadding="-1dp"
android:gravity="center"
android:paddingTop="0dp"
android:scaleX="1.0"
android:scaleY="1.0"
android:text="@string/Gel"
android:textSize="10sp"
android:visibility="gone" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@ id/btnArchiviert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:drawableTop="@drawable/ic_archive"
android:drawablePadding="5dp"
android:gravity="center"
android:paddingStart="16dp"
android:paddingTop="5dp"
android:paddingEnd="16dp"
android:paddingBottom="5dp"
android:text="@string/Archiviert"
android:textColor="@color/radio_flat_text_selector" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@ id/btnAus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:drawableTop="@drawable/ic_hidden"
android:drawablePadding="5dp"
android:gravity="center"
android:paddingStart="16dp"
android:paddingTop="5dp"
android:paddingEnd="16dp"
android:paddingBottom="5dp"
android:text="@string/Ausgebl"
android:textColor="@color/radio_flat_text_selector" />
</RadioGroup>
radio_flat_selector.xml для выбора фона:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/radio_flat_selected" android:state_checked="true" />
<item android:drawable="@drawable/radio_flat_regular" />
</selector>
radio_flat_selected.xml для выбранной кнопки:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="1dp" />
<solid android:color="@color/colorAccent" />
<stroke
android:width="1dp"
android:color="@color/colorAccent" />
</shape>
radio_flat_regular.xml для обычного селектора:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="1dp" />
<solid android:color="#fff" />
<stroke
android:width="1dp"
android:color="@color/colorAccent" />
</shape>
Весь приведенный выше код файла 3 будет находиться в drawable/
папке.
Теперь нам также нужен Text
селектор цвета, чтобы соответствующим образом изменить цвет текста.
radio_flat_text_selector.xml для выбора цвета текста
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/colorAccent" android:state_checked="false" />
<item android:color="@color/text_n" android:state_checked="true" />
</selector>
Ответ №1:
Попробуйте изменить android:shape="rectangle"
на android:shape="oval"
Ответ №2:
Я решил эту проблему, поэтому решил опубликовать ответ, чтобы в будущем никому не пришлось сталкиваться с такой проблемой.
Вот решение для округления RadioButton
.
<RadioGroup
android:id="@ id/llButtons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@ id/btnEigene"
android:layout_width="58dp"
android:layout_height="58dp"
android:layout_marginStart="4dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:contentDescription="@string/EigeneFragen"
android:drawableTop="@drawable/ic_mine"
android:drawablePadding="-1dp"
android:gravity="center"
android:padding="10dp"
android:text="@string/Eigene"
android:textSize="11sp" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@ id/btnKontakte"
android:layout_width="58dp"
android:layout_height="58dp"
android:layout_marginStart="4dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:contentDescription="@string/FragenKontakte"
android:drawableTop="@drawable/ic_contacts"
android:drawablePadding="-1dp"
android:gravity="center"
android:padding="10dp"
android:text="@string/Kontakte"
android:textSize="11sp" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@ id/btnAlle"
android:layout_width="58dp"
android:layout_height="58dp"
android:layout_marginStart="4dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:contentDescription="@string/Alle"
android:drawableTop="@drawable/ic_all"
android:drawablePadding="-1dp"
android:gravity="center"
android:padding="10dp"
android:text="@string/Alle"
android:textSize="11sp"
android:visibility="visible" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@ id/btnGeloescht"
android:layout_width="58dp"
android:layout_height="58dp"
android:layout_marginStart="4dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:contentDescription="@string/deletedquestions"
android:drawableTop="@drawable/ic_delete"
android:drawablePadding="-1dp"
android:gravity="center"
android:padding="10dp"
android:text="@string/Gel"
android:textSize="12sp"
android:visibility="gone" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@ id/btnArchiviert"
android:layout_width="58dp"
android:layout_height="58dp"
android:layout_marginStart="4dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:contentDescription="@string/Archiv"
android:drawableTop="@drawable/ic_archive"
android:drawablePadding="-1dp"
android:gravity="center"
android:padding="10dp"
android:text="@string/Archiviert"
android:textSize="11sp" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@ id/btnAus"
android:layout_width="58dp"
android:layout_height="58dp"
android:layout_marginStart="4dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:contentDescription="@string/ausgeblendetefragen"
android:drawableTop="@drawable/ic_hidden"
android:drawablePadding="-1dp"
android:gravity="center"
android:padding="10dp"
android:text="@string/Ausgebl"
android:textSize="11sp" />
</RadioGroup>
radio_flat_selector.xml для выбора фона:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/radio_flat_selected" android:state_checked="true" />
<item android:drawable="@drawable/radio_flat_regular" />
radio_flat_selected.xml для выбранной кнопки:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/lightdivider" />
<stroke
android:width="1dp"
android:color="@color/lightdivider" />
<size
android:width="50dp"
android:height="50dp" />
</shape>
radio_flat_regular.xml для обычного селектора:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#fff" />
<stroke
android:width="1dp"
android:color="@color/lightdivider" />
<size
android:width="50dp"
android:height="50dp" />
</shape>
Весь приведенный выше код файла 3 будет находиться в drawable/
папке.
Теперь нам также нужен Text
селектор цвета, чтобы соответствующим образом изменить цвет текста.
radio_flat_text_selector.xml для выбора цвета текста
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/lightdivider" android:state_checked="false" />
<item android:color="@color/colorLV" android:state_checked="true" />
</selector>