10

Mi stavo chiedendo se è possibile semplicemente rimuovere la freccia del menu a discesa per uno spinner? Ho una freccia disegnabile in un layout backgroud per il mio spinner, tuttavia la freccia di default del sistema appare a destra dello spinner, che mi piacerebbe eliminare.Android - Rimuovi Spinner Dropdown Arrow

Ecco il codice XML filatore per il mio layout attività

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

E il mio layout personalizzato filatore assomiglia a questo:

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

Grazie!

+0

controllare questo link aiuti voi http://stackoverflow.com/questions/4058360/how-to-create-android-spinner-without-down-triangle-on-the-right-side- of-the-wid –

+0

Non so perché i downvotes, ho cercato su come fare questo per un paio d'ore ora prima di chiedere. – Metalor

+0

Ho appena visto il tuo commento @ZubairAkber, grazie mille! Non sono sicuro di quanto mi sia mancato, di solito sono un professionista di Googling. Grazie ancora :) – Metalor

risposta

8

Questo può aiutare

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

Utilizzare questo stile in ur filatore

+0

questo sembra strano se si utilizza il design del materiale ... la risposta è corretta – kenyee

57

Sfondo @null nel file di layout xml anche fa il trucco, se non si vuole dichiarare uno stile ben preciso:

 <Spinner 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@null"/> 
+0

Sono stato sorpreso che questo lo fa molto bene. – Neri

0

Entrambe le risposte non sono state utili per me, quindi ecco una soluzione one-line davvero semplice che ha funzionato.

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

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

Non posso dire con certezza se funzionerà con solo un layout predefinito filatore, ma ha funzionato bene con la mia personalizzato che ho creato per altre necessità.