wake-up-neo.com

Android - Spinner Dropdown Arrow entfernen

Ich frage mich nur, ob es überhaupt möglich ist, den Dropdown-Pfeil für einen Spinner einfach zu entfernen. Ich habe einen zeichnbaren Pfeil in einem Hintergrund-Layout für meinen Spinner. Der Standardpfeil des Systems wird jedoch rechts neben dem Spinner angezeigt, den ich gerne loswerden möchte.

Hier ist der Spinner-XML-Code für mein Aktivitätslayout

<Spinner
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:id="@+id/spinnerSelectStaff"
            Android:layout_gravity="center_horizontal"
            Android:layout_marginLeft="18dp"
            Android:layout_marginRight="18dp"
            Android:gravity="center"
            Android:dropDownSelector="@drawable/empty"/>

Und mein benutzerdefiniertes Spinner-Layout sieht folgendermaßen aus:

<TextView xmlns:Android="http://schemas.Android.com/apk/res/Android"
          Android:id="@Android:id/text1"
          Android:layout_width="match_parent"
          Android:layout_height="wrap_content"
          Android:layout_margin="5dp"
          Android:gravity="center"
          Android:textSize="20sp"
          Android:background="@drawable/spinner_text_shape"
          Android:drawableRight="@drawable/ic_keyboard_arrow_down_black_24dp"
          Android:textColor="@color/primary_text" />

Vielen Dank!

32
Metalor

Dies kann Ihnen helfen

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style parent="@Android:style/Widget.Spinner" name="SpinnerwithNoArrow">
        <item name="Android:background">@Android:drawable/edit_text</item>
    </style>
</resources>

Verwenden Sie diesen Stil in Ihrem Spinner

16
Prabhuraj

Background @null in der Layout-XML-Datei macht ebenfalls den Trick, wenn Sie keinen bestimmten Stil deklarieren möchten:

        <Spinner
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:background="@null"/>
97
Galya

Bitte probieren Sie diesen einfachen Weg:

Android:background="@Android:color/transparent"
5
Nimisha V

Beide Antworten waren für mich nicht hilfreich, daher hier eine wirklich einfache einzeilige Lösung, die funktioniert hat.

  //some spinner initialisation stuff->
mySpinner.setAdapter(adapter);

  //some spinner initialisation stuff->
mySpinner.getBackground().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);

Ich kann nicht sicher sagen, ob es nur mit einem Standard-Spinner-Layout funktionieren wird, aber es hat gut mit meinem Custom funktioniert, das ich für andere Bedürfnisse erstellt habe.

4
Nor Kagramanian