Я протестировал следующее решение на уровнях SDK 8 и 16.
В getView()
setFocusable(false);
setClickable(false);
вместо того, чтобы устанавливать их в true в getView()
Адаптера, делает то, что, как я думаю, хотел исходный вопрос, и означает, что вызывается OnItemClickListener
, при условии, что OnClickListener
не установлен в getView()
.
Я предполагаю, что все, что вы можете сделать в View OnClickListener
, вы можете сделать так же легко в ListView
s OnItemClickListener
.
(setOnClickListener
в представлении неявно устанавливает представление для щелчка, что, по-видимому, препятствует вызову OnItemClickListener
соответствующего *1018* вызова.)
Поведение такое, как и следовало ожидать, с точки зрения визуального состояния ImageButton
, когда элемент нажимается или переворачивается.
Решение представляет собой небольшую иллюзию, так как нажимается не элемент ImageButton
, а элемент списка, поэтому, если кнопка не занимает весь элемент списка, нажатие где-либо еще в этом элементе все равно сделает кнопку состояние рисования отражает клик. То же самое для фокуса. Это может быть цена, которую стоит заплатить.