Подтвердить что ты не робот

Горизонтальный вид прокрутки: действительно ли это решение?

Как и тысячи других разработчиков, в какой-то момент мне нужна горизонтальная галерея изображений. (В моем случае я хотел его на странице 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, так как я уверен, что его можно оптимизировать и улучшить. Это было бы моим предпочтительным решением, если бы у меня было больше времени. Но время мимолетное.

4b9b3361

Ответ 1

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

Лично я бы предложил использовать HorizontalListView найденный здесь.