48 Stimmen

Ansichtstext in der Mitte des Spinners in Android ausrichten

view-text-in-the-center-of-the-spinner-when-select-from-the-drop-down-list

Ich möchte den Ansichtstext von Spinner auf die Mitte ausrichten. Ich google es, aber habe nichts gefunden, weiß jemand über diese? jede Hilfe oder Vorschlag werden geschätzt

62voto

Andro Selva Punkte 53086

Erstellen Sie einen Adapter für Ihren Spinner wie diesen,

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;

    }

};

Jetzt Ihr 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" />

Setzen Sie nun diesen Adapter auf Ihren Spinner,

spinner.setAdapter(adapter);

50voto

ihrupin Punkte 6902

Sie müssen Ihr eigenes Layout für das Spinner-Element festlegen.

SpinnerAdapter adap = new ArrayAdapter<String>(this, R.layout.spinner_item, new String[]{"A", "B", "C"});
spriner.setAdapter(adap);

Dabei ist R.layout.spinner_item ein Layout mit Inhalt:

<?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>

19voto

rajesh Punkte 181

Das ist ganz einfach. Erstellen Sie einfach eine xml Datei mit dem Namen z.B., spinner_item.xml mit Inhalt als

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#111111"
android:padding="10dp"
android:textAlignment="center"
/>

Jetzt in Ihrem Java Klasse, fügen Sie anstelle der Standard-View-Ressource von Android Ihre eigene View-Ressource als

ArrayAdapter<String> adapter= new ArrayAdapter<String>(context, R.layout.spinner_item, myList);
 adapter.setDropDownViewResource(R.layout.spinner_item);

Die Zeile textAlignment erfüllt diesen Zweck.

14voto

minhazur Punkte 4848

Einstellung textAlignment zu zentrieren platziert den Text in der Mitte.

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"/>

5voto

Borja Punkte 1239

Dies funktioniert ohne Layoutänderungen

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
               ((TextView) adapterView.getChildAt(0)).setGravity(Gravity.CENTER);
        }
 });

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X