j'ai cette disposition personnalisée:Android: changement de style quand concentré
- LinearLayout
- FrameLayout
- ImageView
- TextView
Cette disposition réagit à cliquer sur les événements (en utilisant LinearLayout.setOnClickListener()
) et en utilisant focusable android:focusable="true"
dans le fichier XML de mise en page. Tout fonctionne bien si vous utilisez l'écran tactile, mais je pense à des utilisateurs qui n'utilisent pas beaucoup l'écran tactile et préfèrent les touches de navigation ou peut-être même n'ont pas d'écran tactile. Ces utilisateurs ne pourront pas voir quand ce ViewGroup
est focalisé (bien que peut être focalisé en utilisant le clavier).
Ma question est: comment puis-je faire un changement dans cette mise en page quand il est concentré (je dois changer le android:background
du ImageView
)? Je suppose que je pourrais utiliser LinearLayout.setOnFocusChangeListener()
, mais je pense que peut-être il y a un meilleur moyen, en utilisant seulement des fichiers XML.
Je faisais des recherches et je suis tombé sur StateListDrawable moi-même. Bien qu'il fasse à peu près ce que je veux, ce n'est pas vraiment parfait. Je veux changer l'arrière-plan de l'ImageView quand le LinearLayout est concentré, et je ne peux pas faire cela avec StateListDrawable. +1 cependant, pour pointer cette classe très utile! – Felix
En outre, où puis-je définir les StateListDrawables? Est-ce que je crée des fichiers XML dans le répertoire drawable /? – Felix