J'ai testé la solution suivante sur les niveaux 8 et 16 du SDK.
En getView()
setFocusable(false);
setClickable(false);
plutôt que de les mettre à la valeur réelle dans les paramètres de l'adaptateur. getView()
fait ce que je pense que la question originale voulait, et signifie qu'une OnItemClickListener
est appelé, à condition qu'un OnClickListener
n'est pas défini dans getView()
.
Je suppose que tout ce qu'on peut faire dans une vue OnClickListener
vous pouvez le faire tout aussi facilement dans un ListView
's OnItemClickListener
. ( setOnClickListener
sur une vue définit implicitement la vue comme étant cliquable, ce qui empêche l'utilisation de l'option ListView
correspondant à OnItemClickListener
être appelé, apparemment).
Le comportement est conforme à ce que l'on pourrait attendre, en termes de ImageButton
L'état visuel de l'article lorsque celui-ci est pressé ou retourné.
La solution est une légère illusion, en ce sens que c'est l'élément de la liste qui est pressé et non le ImageButton
Ainsi, si le bouton n'occupe pas tout l'élément de la liste, le fait de cliquer ailleurs dans l'élément fera en sorte que l'état du bouton reflète le clic. Même chose pour le focus. Cela pourrait être un prix à payer.