Par défaut sélecteur de fond dans Cliquable Vues
J'ai quelques cliquable points de vue et je veux mettre la valeur par défaut disponible arrière-plan qui est présent sur la liste, cliquez sur (dans ICS est d'une couleur bleu). J'ai essayé de mettre comme arrière-plan de cette:
android:background="@android:drawable/list_selector_background"
mais il n'est pas le bleu par défaut j'ai par défaut (celui que j'ai utilisé est de couleur orange). Qu'est-ce que le drawable utilisé par défaut sur android, cliquez sur le sélecteur?
Grâce
- utiliser android:background="?android:attr/selectableItemBackground"
Vous devez vous connecter pour publier un commentaire.
C'est
list_selector_holo_dark
ou l'équivalent holo version la lumière; et ce sont les valeurs par défaut en Nid d'abeille et au-dessus.list_selector_background
est la non-holo version, utilisée dans le pain d'épices et ci-dessous.MODIFIER: je croire (mais ne peut pas le confirmer) que la plate-forme agnostique sélecteur est
?android:attr/listSelector
\layout\
qui utilise@android:drawable/list_selector_background
et un en\layout-v11\
qui utilise@android:drawable/list_selector_holo_dark
android:attr/listChoiceBackgroundIndicator
, qui peut être confirmé par la recherche delist_selector_holo_dark
dans le sdk sourceres/values/themes.xml
.android:attr/listSelector
est la valeur de l'attribut utilisé parAbsListView
pour récupérer xml valeurandroid:listSelector
, si vous utilisez ce que la valeur d'un attribut, normalement, une exception sera levée à l'intérieur deTypedValue.getDrawable()
.Cela fonctionne pour moi:
?attr/selectableItemBackground
Android avec le soutien de la bibliothèque fonctionne sur les versions 2.x ainsi. Sur pain d'épice, il m'a donné un arrière-plan bleu (sur l'émulateur), et un peu de gris sur un KitKat appareil.Si vous utilisez
appcompat-v7
, vous pouvez simplement utiliser?attr/selectableItemBackground
.Il y a un moyen de combiner toutes les réponses valables:
Définir un attribut (par exemple. dans values/attrs.xml):
Dans votre dépendants de la plateforme thème de l'article (par exemple. dans values/styles.xml ou values/themes.xml) déclare ceci:
Dans votre plate-forme dépendant de la section du thème pour api-11+ (eg. dans values-v11/styles.xml ou values-v11/themes.xml) déclare ceci:
Ensuite utiliser
?attr/clickableItemBackground
où il est nécessaire.Une solution similaire à flx réponse, mais sans autre attribut définition.
Plate-forme indépendante de style utilisées pour le pré-Holo appareils (en
res\values\styles.xml
):Style Holo périphériques (API Level 14+) (en
res\values-v14\styles.xml
):Appliquer un style aux besoins de vue, par exemple,
LinearLayout
:Sinon,
si vous voulez juste les éléments pour mettre en surbrillance bleue (ou quelle que soit la valeur par défaut est) alors qu'ils sont cliqués.
emulator-api4.0-blue
,emulator-nexus4-api4.1.1-blue
,device-nexus4-api4.4.2-gray
Cela fonctionne très bien sur les api 11 et ci-dessus. Mais comme l'a noté il l'habitude de travailler sur les versions précédentes.
Voici une solution pour le faire tourner sur toutes les versions fonctionnant sous android.
Ajouter les couleurs appropriées à l'intérieur de la colors.xml qui est situé à l'intérieur de vos valeurs de dossier. Il doit apparaître comme tel:
Créer un xml sélecteur de fichier. Ici, j'ai nommé button_selection.xml
Aller à votre point de vue ou bouton et réglez la nouvellement créé button_selection.xml comme son arrière-plan.
Réglage
Background
limite vous de choisir une couleur d'arrière-plan ou drawable plus tard!Donc, mon conseil est d'ajouter ce style à votre
styles.xml
:Puis sur chaque point de vue, vous n'aurez qu'à ajouter:
Comme TOUT VUE!
N'oubliez pas pour ajouter
onClickListener
pour voir les résultats.