54 votes

Arrière-plan par défaut du sélecteur dans les vues cliquables

J'ai quelques vues cliquables et je veux définir le fond disponible par défaut qui est présent lors d'un clic sur la liste (dans ICS, c'est une couleur bleue). J'ai essayé de mettre comme arrière-plan ceci :

android:background="@android:drawable/list_selector_background"

mais ce n'est pas le bleu que j'ai par défaut (celui que j'ai utilisé est orange). Quel est le drawable utilisé par défaut sur Android comme sélecteur de clic ?

Gracias

6voto

ChallengeAccepted Points 272

Cela fonctionne bien sur api 11 et plus. Mais comme indiqué, il ne fonctionne pas sur les versions précédentes.

android:background="?android:attr/selectableItemBackground"

Voici une solution pour le faire fonctionner sur toutes les versions fonctionnant sous Android.

  1. Ajoutez les couleurs appropriées dans le fichier colors.xml qui se trouve dans votre dossier values. Il doit apparaître comme suit :

    <color name="white">#ffffff</color>
    <color name="blue">#7ecce8</color>
  2. Créez un fichier xml de sélection. Ici je l'ai nommé bouton_sélection.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@color/blue"/>         <!--pressed -->
    <item android:state_focused="true" android:drawable="@color/blue"/> <!-- focused -->
    <item android:drawable="@color/white"/> <!-- default -->
    </selector> 
  3. Allez dans votre vue ou votre bouton et définissez l'arrière-plan du bouton_selection.xml nouvellement créé.

    android:background="@drawable/button_selection"

4voto

Colin Points 21

Alternativement,

android:background="?android:attr/listChoiceBackgroundIndicator

si vous voulez simplement que les éléments soient surlignés en bleu (ou quel que soit le défaut actuel) lorsqu'ils sont cliqués.

2voto

Morteza Rastgoo Points 2805

Réglage de Background vous empêche de choisir une couleur d'arrière-plan ou de dessiner plus tard ! Je vous conseille donc d'ajouter ce style à vos fichiers de type styles.xml :

<style name="TouchableView">
    <item name="android:foreground">?android:attr/selectableItemBackground</item>
</style>

Et ensuite, sur chaque vue, il suffit d'ajouter :

            android:theme="@style/TouchableView"

Comme N'IMPORTE QUEL VIEW !

    <TextView
        android:id="@+id/my_orders"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginRight="0dp"
        android:theme="@style/TouchableView"
        android:background="@color/white"
        android:gravity="left"
        android:padding="10dp"
        android:text="@string/my_orders"
        android:textColor="@color/gray"
        android:textSize="14sp" />

N'oubliez pas à ajouter onClickListener pour voir les résultats.

1voto

Anoop M Points 2880

En bref - android:background="?selectableItemBackground" ;)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X