web-dev-qa-db-fra.com

Android - Supprimer la flèche déroulante Spinner

Je me demande simplement s'il est possible de supprimer simplement la flèche déroulante d'un spinner? J'ai une flèche dessinable dans une disposition de fond pour mon spinner, mais la flèche par défaut du système apparaît à droite du spinner, dont je voudrais me débarrasser.

Voici le code xml de spinner pour ma disposition d'activité

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

Et ma disposition de spinner personnalisée ressemble à ceci:

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

Merci!

32
Metalor

Cela peut vous aider

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

Utilisez ce style dans votre spinner

16
Prabhuraj

@Null en arrière-plan dans le fichier xml de mise en page fait également l'affaire, si vous ne voulez pas déclarer un style spécifique:

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

Veuillez essayer de cette manière simple:

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

Les deux réponses ne m'ont pas été utiles, alors voici une solution en ligne très simple qui a fonctionné.

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

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

Je ne peux pas dire avec certitude si cela fonctionnera avec une disposition de spinner par défaut, mais cela a bien fonctionné avec ma coutume que j'ai créée pour d'autres besoins.

4
Nor Kagramanian