So fügen Sie eine Zeile am unteren Rand des Spinners hinzu, wie z. B. edittext in Android

Lesezeit: 4 Minuten

Hallo, ich mache eine Demo-Anwendung, die ich verwende EditText in der unten eine Linie erscheint, die in Ordnung ist, aber nicht im Falle eines Spinners.

Wie ist das möglich?

layout.xml

<EditText
    android:id="@+id/twitterEditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/twitter_account"
    android:inputType="textWebEmailAddress" />


<Spinner
    android:id="@+id/countrySpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/country" />

<Spinner
    android:id="@+id/stateSpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/state" />

<Spinner
    android:id="@+id/citySpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/city" />

Geben Sie hier die Bildbeschreibung ein

  • Sie möchten, dass die Auswahl des Benutzers angezeigt wird, nachdem er etwas in der US-Liste usw. ausgewählt hat? Bitte klarer werden…

    – TomerZ

    1. November 2014 um 18:20 Uhr

  • @TomerZ Ich möchte, dass es eine schwarze Linie wie in der anderen Ansicht gibt (Bearbeitungstext, Telefon, E-Mail)

    – N Sharma

    1. November 2014 um 18:24 Uhr

  • @TomerZ diese Zeile sollte immer da sein, nicht nachdem der Benutzer etwas aus einem Spinner ausgewählt hat

    – N Sharma

    1. November 2014 um 18:25 Uhr

  • Sie möchten, dass es wie ein Trennzeichen ist oder die gewählte Option anzeigt? (oder einfach da sein, leer, wenn noch nichts ausgewählt wurde)

    – TomerZ

    1. November 2014 um 19:01 Uhr

  • @TomerZ das ist wie ein Trennzeichen, aber das ist keine zusätzliche Ansicht, die ich im Falle von edittext hinzugefügt habe. Es ist standardmäßig in Android Material Design

    – N Sharma

    1. November 2014 um 19:18 Uhr

Ich stand gerade vor dem gleichen Problem und nach einer Weile der Recherche ist die Antwort ganz einfach:

    <Spinner
        ...            
        style="@style/Widget.AppCompat.Spinner.Underlined"
        ... />

  • style=”@style/Widget.AppCompat.Spinner.Underlined” ist nicht definiert.

    – Übersetzungsverlust

    13. Mai 2015 um 19:06 Uhr

  • Wie ändert man die Farbe der Linie?

    – rohitsakala

    11. Juli 2015 um 18:01 Uhr

  • Um die Farbe zu ändern, müssen Sie Ihren Stil ändern, wie zum Beispiel:

    – Antonius

    13. Juli 2015 um 6:37 Uhr

<android.support.v7.widget.AppCompatSpinner
        ...            
        style="@style/Widget.AppCompat.Spinner.Underlined"
        app:backgroundTint="YOUR_COLOR_HERE"
        ... />

Wenn @style/Widget.AppCompat.Spinner.Underlined nicht gefunden oder funktioniert nicht verwendet unten style zum Spinner für unterstrichen

             <Spinner
                    android:id="@+id/spinner"
                    android:layout_width="wrap_content"
                    style="@android:style/Widget.Material.Spinner.Underlined"
                    android:layout_height="wrap_content"
                    />

Da niemand eine tatsächliche Antwort gepostet hat, hier gehts:

<item android:bottom="1dp"
    android:left="-2dp"
    android:right="-2dp"
    android:top="-2dp">
    <shape android:shape="rectangle" >
        <stroke
            android:width="0.5dp"
            android:color="@android:color/black" />
    </shape>
</item>

In diese Zeile schreiben Sie Ihre Eingabe oben. Ein Spinner hat diese Zeile nicht, weil es kein Texteingabefeld ist. Wenn Sie auch eine Linie unter dem Spinner haben möchten, können Sie sie unten einfügen, indem Sie sie wie folgt vortäuschen:

<Spinner
    android:id="@+id/firstSpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/firstHint" />

<!-- Separator view -->

<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@android:color/black"/>

<Spinner
    android:id="@+id/secondSpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:hint="@string/secondHint" />

<!-- Insert separator view again-->

Wahrscheinlich müssen Sie ein wenig mit den Rändern herumspielen. Beachten Sie auch, dass die schwarze Linie nur in Android 5.0 vorhanden ist und das gesamte Layout auf älteren Androids ganz anders aussehen wird. Wenn Sie unter Android 5.0 nur schwarze Linien haben möchten, müssen Sie eine Kopie des Layouts erstellen und in ein Verzeichnis namens einfügen layout-v21und haben die andere Version im Standard layout Verzeichnis.

  • Diesem Ansatz möchte ich nicht folgen. Ich möchte dies über Stil und Neun-Patch-Image tun.

    – N Sharma

    11. Dezember 2014 um 19:25 Uhr

  • Diese Methode funktioniert bei mir nicht, nur mit style="@style/Widget.AppCompat.Spinner.Underlined"

    – Rafael Guimarães

    17. Juni 2019 um 21:26 Uhr

Benutzeravatar von Keshav Gera
Keshav Gera

Es funktioniert

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:spinnerStyle">@style/holoSpinner</item>
</style>

<style name="holoSpinner" parent="Widget.AppCompat.Spinner.Underlined">
        <item name="android:textSize">16sp</item>
        <item name="android:textColor">#3F51B5</item>
</style>

Viel Spaß beim Codieren

  • Diesem Ansatz möchte ich nicht folgen. Ich möchte dies über Stil und Neun-Patch-Image tun.

    – N Sharma

    11. Dezember 2014 um 19:25 Uhr

  • Diese Methode funktioniert bei mir nicht, nur mit style="@style/Widget.AppCompat.Spinner.Underlined"

    – Rafael Guimarães

    17. Juni 2019 um 21:26 Uhr

1432020cookie-checkSo fügen Sie eine Zeile am unteren Rand des Spinners hinzu, wie z. B. edittext in Android

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy