wake-up-neo.com

Ansichtstext in der Mitte des Drehfelds ausrichten in android

Text in der Mitte des Drehfelds anzeigen, wenn aus der Dropdown-Liste ausgewählt wird

Ich möchte den Ansichtstext des Drehfelds zentrieren. Ich google, habe aber nichts gefunden. Weiß jemand davon? Jede Hilfe oder Anregung wird gebeten

35
Pratik

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

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;

    }

};

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

Stellen Sie nun diesen Adapter auf Ihren Spinner ein,

spinner.setAdapter(adapter);
57
Andro Selva

Sie müssen Ihr eigenes Layout für das Drehelement festlegen.

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

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

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

Dies ist sehr einfach. Erstellen Sie einfach eine xml -Datei mit dem Namen 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"
/>

Fügen Sie nun in Ihrer Klasse Java trotz Hinzufügen der Standardansichtsressource von Android Ihre benutzerdefinierte Ansichtsressource als hinzu

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

Die Zeile textAlignment erledigt den Trick.

13
rajesh

Wenn Sie Textausrichtung auf Mitte einstellen, wird der Text in die Mitte gestellt.

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

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);
        }
 });
5
Borja

Spät zum Spiel, aber ich wollte dies für zukünftige Benutzer hinzufügen, nur weil ich fand, dass es eine einfache Lösung für mein Problem ist. Dadurch konnte ich einfachen Text zentrieren, ohne ein benutzerdefiniertes Layout zu erstellen. So habe ich padding verwendet

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

Mit dieser Methode konnte ich meinen Text erfolgreich in meinem Drehfeld zentrieren. Dies funktioniert wahrscheinlich nur für einfache Fälle, aber Sie möchten wahrscheinlich trotzdem ein benutzerdefiniertes Layout für komplexere Fälle verwenden. Dies dient nur dazu, Ihre XML-Dateien klein zu halten und die Verwendung eines benutzerdefinierten Layouts zum Zentrieren eines einfachen Drehfelds zu vermeiden.

2
zgc7009

Fügen Sie diese Zeile in Spinner hinzu

Android:textAlignment="center"

Voila!

1
Sanjit Prasad