web-dev-qa-db-fra.com

RadioButton laisse un cercle coché noir après avoir décoché

Mes RadioButtons dans mon RadioGroup laissent un cercle coché noir après que je les décoche ou clique sur un autre RadioButton dans le groupe. Comment éviter que cela ne se produise?

<RadioGroup
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:orientation="vertical">

        <RadioButton
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:text="Test"
            Android:textAlignment="textStart"
            Android:layoutDirection="rtl"
            Android:layout_gravity="start"
            Android:background="?android:selectableItemBackground"/>

        <RadioButton
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:textAlignment="textStart"
            Android:layoutDirection="rtl"
            Android:layout_gravity="start"
            Android:background="?android:selectableItemBackground"/>

</RadioGroup>

enter image description here

Cela se produit sur mon appareil réel API 19, pas sur mon API 27

Modifier: _________________________________________________

J'ai essayé d'utiliser un sélecteur personnalisé qui ne fonctionne pas

<RadioGroup
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_below="@id/qrmenu_toolbar"
        Android:orientation="vertical">

<RadioButton
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:text="Resume"
            Android:layoutDirection="rtl"
            Android:layout_gravity="start"
            Android:drawablePadding="12dp"
            Android:paddingStart="16dp"
            Android:paddingTop="12dp"
            Android:paddingEnd="16dp"
            Android:paddingBottom="12dp"
            app:drawableLeftCompat="@drawable/ic_resume"
            Android:button="@drawable/radiobutton_selector"
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:drawable="@drawable/radio_checked" Android:state_checked="true" />
    <item Android:drawable="@drawable/radio_unchecked" Android:state_checked="false" />
</selector>

Thème:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorBlack</item>
        <item name="colorPrimaryDark">@color/colorBlack</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

Bump ne trouve toujours pas de solution

Modifier: ______________________________________

J'ai également essayé d'utiliser des boutons radio personnalisés ... ne fonctionne toujours pas:

<RadioButton
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:button="@drawable/custom_radio_button"/>

RadioButton personnalisé:

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:state_checked="true" Android:drawable="@drawable/ic_radio_button_checked"/>
    <item Android:state_checked="false" Android:drawable="@drawable/ic_radiobutton_unchecked"/>
</selector>
8
DIRTY DAVE

Supprimer l'arrière-plan du bouton radio

Android:background="?android:selectableItemBackground"

et utilise Android:button="@drawable/radiobutton_selector"

Voici un exemple de bouton radio personnalisé sous Android. veuillez regarder cela. Peut-être que cette aide pour vous. http://www.apnatutorials.com/Android/android-radiobutton-customization-and-usage.php?categoryId=2&subCategoryId=62&myPath=Android/android-radiobutton-customization-and-usage.php

3
mdroid

Utilisez MaterialRadioButton de la bibliothèque de support (com.google.Android.material). Le problème peut se produire en raison d'une implémentation différente de RadioButton en fonction de la version d'API associée aux thèmes et aux sélecteurs. L'utilisation de MaterialRadioButton unifiera le comportement entre les versions d'API.

Ici est une petite donnée pour ce composant.

'com.google.Android.material:material:1.0.0' la dépendance doit être importée dans le projet et l'un des thèmes Material doit être utilisé pour l'application.

J'espère que cela aidera.

1
Pavlo Ostasha

Vous devez utiliser buttonTint pour cela.

<RadioButton
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:id="@+id/radioButton"
    Android:buttonTint="@color/your_color"/>

Votre radioButton devrait être comme ça. Cependant, cela ne fonctionne pas avant l'api 21 Il existe une solution ici pour les appareils avant API 21 Changer la couleur du cercle du bouton radio

0
Okan Serdaroğlu