Встраивание ListView внутри галереи

Цель состоит в том, чтобы реализовать галерею, адаптер которой возвращает ListViews (другими словами, вертикально прокручиваемые ListViews, встроенные в горизонтальную прокручиваемую галерею). Это вроде как работает после небольшой работы, но при попытке прокрутки по горизонтали ListView выглядит очень нервным, как будто есть некоторая липкость к центру. Я не наблюдал такого поведения ни с одним другим типом представления, встроенным в галерею.

Вот что я пробовал:

Первоначально я обнаружил, что ListView подавляет события касания, поэтому слушатель жестов в галерее никогда не запускается.

Итак, в методе onCreate () Activity я создал GestureDetector:

galleryGestureDetector = new GestureDetector (this, gallery);

Затем, внутри метода getView () адаптера галереи, после того, как ListView был расширен и настроен, у меня есть некоторый код вроде этого:

listView.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        galleryGestureDetector.onTouchEvent(event);
        return true;
    }
});

В этом случае я даже пошел на крайний шаг, вернув истину из OnTouchListener, чтобы гарантировать, что метод onTouchEvent () listView на самом деле никогда не вызывается. Возникает такое же нервное поведение. В результате я думаю, что могу исключить конкурирующие реализации onTouchEvent () между двумя представлениями.

Я попытался злоупотребить концепцией TouchDelegate, расширив сенсорный прямоугольник галереи, включив в него ListView, а затем заставив ListView делегировать ему , но это тоже было бесполезным усилием.

Я бы поднял руки и сказал, что в настоящее время это невозможно, но приложение Social Networking, которое поставляется вместе с DroidX, каким-то образом выполняет это!

5
задан jkschneider 17 November 2011 в 18:43
поделиться