2010-03-22 6 views
6

Je vais essayer de changer la couleur du texte et aligner élément dans fileuse au centre de celui-ci comment puis-je faire ceComment colorer et aligner l'élément spinner sur Android?

ici est mon code

String[] li={"1","2","3"}; 
final Spinner combo = (Spinner)findViewById(R.id.widget30); 
ArrayAdapter<String> a = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, li); 
combo.setAdapter(a); 

Merci

Répondre

19

Utilisez une vue personnalisée pour que et préciser en appelant:

a.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

Notez que vous devez utiliser votre propre point de vue ici: R.id.my_simple_spinner_dropdown_item

<?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="fill_parent" 
    android:layout_height="wrap_content" 
    android:ellipsize="marquee" /> 
+0

Très gentil ... travaillé pour moi. Il semble étrange de styler un Spinner avec un TextView, mais cela fonctionne certainement. Les Spinners héritent-ils en quelque sorte des couleurs du texte sans les styliser de cette façon? Sur émulateur, j'avais un comportement différent de celui du téléphone. Le téléphone m'a donné un texte blanc sur fond blanc ... évidemment un problème. Cette technique me permet de forcer la visibilité. –

+1

Il y a un gros inconvénient à cette solution. Afin de définir les éléments RTL vous devez lui donner une largeur de fill_parent ou match_parent. Comment aligner les éléments RTL lors de l'utilisation de wrap_content pour TextView? puisque nous voulons habituellement que la largeur de notre spinner soit égale à la plus grande largeur d'article. – Reza