mon arrière-plan pour mon fragment est blanc, et la flèche pour le spinner ne s'affiche que si je clique dessus.
Voici l'extrait de mon fichier Java:
spinner = (Spinner)v.findViewById(R.id.spinner);
ArrayAdapter adapter = ArrayAdapter.createFromResource(getActivity(), R.array.accounts,R.layout.spinner_item);
adapter.setDropDownViewResource(R.layout.spinner_dropdown_items);
spinner.setAdapter(adapter);
spinner.setPrompt("Select an account");
Ceci est mon XML pour le spinner_item
<TextView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@Android:id/text1"
style="?android:attr/spinnerItemStyle"
Android:singleLine="true"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:ellipsize="Marquee"
Android:textAlignment="inherit"
Android:textSize="16dp"
Android:background="#FFFFFFFF"
Android:textColor="#ff252525"/>
Et ceci est ma disposition pour mes spinner_dropdown_items.
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@Android:id/text1"
style="?android:attr/spinnerItemStyle"
Android:singleLine="true"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:ellipsize="Marquee"
Android:textAlignment="inherit"
Android:textSize="16dp"
Android:background="#FFFFFFFF"
Android:textColor="#ff252525"/>
Voici à quoi ressemble mon spinner avec un fond blanc sur mon fragment: Fond de couleur blanche - Spinner Et voici à quoi il ressemble lorsque je change ma couleur d'arrière-plan en violet: Fond violet - Spinner
Cela fonctionne pour moi, beaucoup plus simple aussi:
<Spinner
Android:id="@+id/spinner"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:theme="@style/ThemeOverlay.AppCompat.Light"
Android:spinnerMode="dropdown" />
Et dans votre dossier de classe:
spinner = (Spinner) view.findViewById(R.id.spinner);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.spinner_data, Android.R.layout.simple_spinner_dropdown_item);
adapter.setDropDownViewResource(Android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
J'espère que cela t'aides ;)
Essaye celui-là:
<Spinner
Android:id="@+id/spinnPhoneTypes"
Android:layout_width="0dp"
style="@Android:style/Widget.Spinner.DropDown"
Android:layout_height="@dimen/thirtyFive"
Android:layout_marginLeft="10dp"
Android:layout_weight="1"
Android:background="@drawable/shape_drop_down_normal"
Android:gravity="center_vertical" />
shape_drop_down_normal.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item>
<shape>
<solid Android:color="@Android:color/transparent" />
<stroke
Android:width="1dp"
Android:color="#6f94c7" />
<padding
Android:bottom="10dp"
Android:left="2dp"
Android:right="10dp"
Android:top="10dp" />
</shape>
</item>
<item>
<bitmap
Android:gravity="end"
Android:src="@drawable/drop_arrow" />
</item>
</layer-list>
Ajoutez simplement un thème dans la balise Spinner
et vous êtes prêt à partir.
Android:theme="@style/ThemeOverlay.AppCompat.Light"
Vérifiez si vous donnez un arrière-plan pour votre Spinner
et si vous le supprimez et cela résoudra le problème
La méthode la plus simple consiste à définir l'image d'arrière-plan (avec une flèche) au lieu de la couleur.
spinner.setBackgroundResource(R.drawable.spinner_img);
j'espère que cela aide.
Pour éviter d'utiliser un dessinable, enveloppez le spinner dans une vue et définissez une couleur d'arrière-plan pour la vue wrapper. Par exemple,
<Android.support.v7.widget.CardView
Android:id="@+id/cardView_spinner"
Android:layout_width="match_parent"
Android:layout_height="60dp"
Android:layout_margin="32dp"
Android:background="@color/white">
<Spinner
Android:id="@+id/spinner"
Android:layout_width="match_parent"
Android:layout_height="match_parent" />
</Android.support.v7.widget.CardView>