Галерея (Горизонтальный ListView) внутри ListView - PullRequest
0 голосов
/ 01 июня 2010

Хорошо, я потратил впустую 1 день своей жизни, я думаю, сейчас самое время обратиться за помощью: D У меня есть просмотр списка, который имеет текстовое изображение .. и т.д. (пользовательский вид) и один из его элементы это галерея. (Ака горизонтальный просмотр списка) Галерея также представляет собой пользовательский вид. ТАК .. вот проблема: Я вызываю адаптер, чтобы установить пользовательский вид в listview.Хорошо. Внутри адаптера listview я вызываю адаптер Gallery. Хорошо, пока. Все отображается так, как должно быть, с очень красивым и сложным интерфейсом Теперь проблема Когда я прокручиваю Галерею, данные меняются на те, которые должны были быть, если я прокручивал галерею последней отображенной строки списка (надеюсь, вы меня здесь) Ex.gallery в первом просмотре списка есть фотографии моря. В галерее 2-го списка есть фотографии здания.

Если я прокручиваю первую галерею, фотографии меняются от "моря" до здания ".

То есть ... каждый раз, когда вызывается getView адаптера списка, я передаю галерее-адаптеру данные

gal1.setAdapter(new GalleryAdapter(CON,PASS[position]));

Что я думаю как возможное решение:

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

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

Итак ... Я прошу вашей помощи. Есть ли 3-й, 4-й ... способ? Кто-нибудь из моих предложений вообще возможен? Если да, укажите способ реализации кода.

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

1 Ответ

0 голосов
/ 09 декабря 2013

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

После установки данных в getView просто уведомите адаптер галереи.

внешний вид getView (возможно, в конструкторе адаптера списка)

GalleryAdapter galleryAdapter=new GalleryAdapter();

в getView

galleryAdapter.setData(CON,PASS[position]);
gal1.setAdapter(galleryAdapter);
...