définir afficher l'alignement du texte au centre dans spinner dans android
mise à Jour
le lien de question mentionné n'existe plus. Mais en raison du nombre élevé de voix et de la serviabilité pour l'avenir, le lien ne devrait pas être supprimé.
le titre de la question liée était -
voir-texte-dans-le-centre-de-la-toupie-quand-sélectionnez-de-la-drop-down-liste
Original
possible doublon avec https://stackoverflow.com/q/4545559/760489
je veux aligner le texte de vue de spinner au centre. Je cherche sur google mais je n'ai rien trouvé, est-ce que quelqu'un est au courant? toute aide ou suggestion est appréciée
Merci
7 réponses
créer un adaptateur pour votre fileur comme ceci,
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, R.layout.my_spinner_style,array_of_values) {
public View getView(int position, View convertView,ViewGroup parent) {
View v = super.getView(position, convertView, parent);
((TextView) v).setTextSize(16);
return v;
}
public View getDropDownView(int position, View convertView,ViewGroup parent) {
View v = super.getDropDownView(position, convertView,parent);
((TextView) v).setGravity(Gravity.CENTER);
return v;
}
};
Now your layout R. layout.my_spinner_style ,
<?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:textColor="#ffffff"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee" />
maintenant réglez Cet adaptateur sur votre broche,
spinner.setAdapter(adapter);
vous devez définir votre propre mise en page pour l'élément spinner.
SpinnerAdapter adap = new ArrayAdapter<String>(this, R.layout.spinner_item, new String[]{"A", "B", "C"});
spriner.setAdapter(adap);
où r. layout.spinner_item est une mise en page avec du contenu:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:gravity="center"
android:textColor="#000000"
android:text="Sample Text"
android:paddingBottom="5dp"
android:paddingTop="5dp"></TextView>
c'est très simple, il suffit de créer un xml
fichier nommé spinner_item.xml
avec le contenu comme
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#111111"
android:padding="10dp"
android:textAlignment="center"
/>
maintenant dans votre classe java
, en dépit de l'ajout de la ressource de vue par défaut d'android ajouter votre ressource de vue personnalisée comme
ArrayAdapter<String> adapter= new ArrayAdapter<String>(context, R.layout.spinner_item, myList);
adapter.setDropDownViewResource(R.layout.spinner_item);
la ligne d'alignement du texte fera l'affaire.
cela fonctionne sans changement de mise en page
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
((TextView) adapterView.getChildAt(0)).setGravity(Gravity.CENTER);
}
});
en retard au jeu, mais je voulais ajouter ceci pour les futurs utilisateurs juste parce que je l'ai trouvé une solution simple pour mon problème. Il m'a permis de centrer du texte simple sans créer une mise en page personnalisée. La façon dont je l'ai fait était d'utiliser padding
<Spinner
android:id="@+id/example_spinner"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="2dp"
android:paddingBottom="2dp" />
j'ai réussi à centrer mon texte dans mon spinner en utilisant cette méthode. Cela ne fonctionnera probablement que pour les cas simples, mais vous voudrez probablement utiliser un layout personnalisé pour les cas plus complexes de toute façon. C'est juste pour garder vos fichiers xml bas et éviter d'avoir à utiliser une mise en page personnalisée juste pour centrer un spinner simple.
Réglage textAlignment à center place le texte au centre.
android: textAlignment= "center
<android.support.v7.widget.AppCompatSpinner
android:id="@+id/spinner_areas"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:visibility="visible"
android:gravity="center"
android:textAlignment="center"/>
laissez-moi répondre. Il est également important de faire de l'espace dans Spinner.
Mauvais:
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
à droite:
<Spinner
android:id="@+id/spinner"
android:layout_width="100dp"
android:layout_height="wrap_content"
/>