Как и тысячи других разработчиков, в какой-то момент мне нужна горизонтальная галерея изображений. (В моем случае я хотел его на странице PageViewer). Затем я услышал, что есть виджет под названием android.wiget.Gallery, который был разработан именно для этой ситуации.
Вскоре я начал слышать, что Gallery устарела и проверяет StackOverflow, после того, как другие сообщения предположили, что HorizontalScrollView - это путь.
Я оставляю Gallery и настраиваю все в HorizontalScrollView. Я впервые заметил, что HorizontalScrollView на самом деле не является виджетами в том смысле, что он может обрабатывать только один корневой макет. Итак, я реализовал корневую компоновку как LinearLayout. Добавьте все мои прокрутки в LinearLayout и поймите, что HorizontalScrollView также не имеет адаптера. Нет проблем, я буду циклически просматривать представления, раздувать их один за другим и отбрасывать AsyncTask для загрузки изображения. Прекрасно работает 4.03. Затем я запустил его на 2.2 и угадал, что было слишком много задач async, поэтому он сработает. Возможно, один AsyncTask, который проходит через все, но есть более 30 изображений. Теперь я снова начинаю рассматривать Галерею.
Но потом я слышу, что есть HorizontalListView. Я реализовал его, плюс адаптер. Он отлично работает, но теперь прокрутка не такая гладкая (на странице ViewPager), и она застревает после перезагрузки несколько раз (внутри страницы ViewPager). Интересно, нужно ли мне больше времени на модификацию HorizontalListView или пересмотреть мои три другие реализации. Может быть, я просто не должен был относиться к этому так серьезно.
Любые предложения?
Эпилог:
В конце концов, я решил остаться с HorizontalScrollView для внутреннего ViewPager и использовать HorizontalListView для других ситуаций. Это было связано с эффективностью прокрутки, молниеносно, и я смог наконец разработать пользовательский адаптер, переопределив onScroll в HorizontalScrollView и в сочетании с CountDownTimer периодически обновляет изображения в диапазоне независимо от скорости. Еще одно решение заключалось в том, чтобы использовать скорость, чтобы начать загрузку, когда она достаточно медленная. Было бы здорово, если бы Advocates HorizontalListView проверил бы его поведение внутри ViewPager, так как я уверен, что его можно оптимизировать и улучшить. Это было бы моим предпочтительным решением, если бы у меня было больше времени. Но время мимолетное.