У меня есть 2 адаптера, расширяющих BaseAdapater. Первый адаптер (позвоните ему imageAdapter) загружает базу изображений на идентификатор, второй адаптер (pageAdapter) создает сетки изображений из первого адаптера. Я установил второй адаптер в галерею. Идея состоит в том, что я могу сортировать страницы в альбоме, где на каждом альбоме есть несколько фотографий.
Теперь я хочу, чтобы imageViews запускал клики, поэтому я установил onClickListener для каждого из изображений из образа. Проблема в том, что после того, как я установил onClickListener, я больше не могу прокручивать галерею с помощью touch/fling/scrolling на изображениях. Я думаю, что вопрос о родительском/детском событии проходит через предмет.. но я не уверен, как это исправить. Пожалуйста, помогите.
Это дикая догадка, основанная на опыте с ListView (где один кликлайнер работал, но родительский onClickListener этого не делал), но установка onClickListener на imageViews могла бы сделать так, чтобы они убрали фокус, а теперь ваш другой события касания не регистрируются.
попробуйте установить myImageView.setFocusable(false)
Я предполагаю, что все работало, как ожидалось, до того, как вы добавили onClickListener в ImageViews.
Я решил эту проблему, выполнив подклассификацию Gallery и переопределив onDown() и onSingleTapUp(). Я также должен реализовать метод pointToChildId() для перевода событий движения в идентификаторы элементов. =) это была намного больше работы, чем я изначально планировал, но она работает сейчас, и я вполне доволен решением.