J'ai une disposition linéaire dans laquelle chaque ligne est gonflée par programme et je veux que les lignes se comportent comme ListView lorsque vous cliquez dessus. Autrement dit, je veux que la ligne soit mise en surbrillance de la même manière/couleur que le ListView par défaut. Comment pourrais-je procéder?
Ok, j'ai finalement compris comment faire cela ... en gros, cela se fait en utilisant un sélecteur comme le sélecteur de couleur lié par style, sauf qu'au lieu de 'color', utilisez un dessinable pour les états et vous pouvez vous référer à la liste par défaut dessinable qui est utilisé dans ListView par ceci:
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_pressed="true"
Android:drawable="@Android:drawable/list_selector_background" />
</selector>
et en utilisant ce xml comme arrière-plan pour ma vue.
Tous les drawables par défaut publics peuvent être trouvés ici: http://developer.Android.com/reference/Android/R.drawable.html
J'ai pu faire de même avec une vue texte que je voulais me comporter comme un élément de liste en utilisant:
<Textview
....
Android:background="@Android:drawable/list_selector_background"
/>
This pourrait être un bon endroit pour commencer à chercher.
Cependant, je vous conseille d'utiliser le ListView lui-même, plutôt que de le réimplémenter.
si vous avez toujours un problème avec cela, n'oubliez pas que certains éléments de l'interface utilisateur ne sont pas cliquables (RelativeLayout), vous devez donc ajouter une ligne de plus:
<RelativeLayout
....
Android:clickable="true"
...
À votre propriété set listview
Android:listSelector="@color/test"
et cette couleur de test définit n'importe quelle couleur transparente que vous aimez. vous pouvez créer n'importe quelle couleur transparente en utilisant couleur transparente hexadécimale