@prosto_anton

Как сделать цикличный горизонтальный скроллинг в android?

Ищу способ сделать цикличный горизонтальный скроллинг в android, желательно с помощью стандартных средств платформы для версии API не выше 15.
  • Вопрос задан
  • 1875 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Как довольно простой вариант:
1) Взять RecyclerView, сделать его горизонтальным:
recyclerView.setLayoutManager(new LinearLayoutManager(..., LinearLayoutManager.HORIZONTAL, ...));

2) "Зациклить" его, сделав кастомный адаптер:
class CustomAdapter extends RecyclerView.Adapter<Holder>{
        private List<Item> items;
...
        @Override
        public void onBindViewHolder(Holder holder, int position) {
            int actualPosition = position % items.size(); //Используем вместо position
        }

        @Override
        public int getItemCount() {
            return Integer.MAX_VALUE; //важно, обеспечивает "бесконечность" скролла
        }
...
}

И, дополнительно, при инициализации
recyclerView.setAdapter(new CustomAdapter());
recyclerView.scrollToPosition(Integer.MAX_VALUE / 2); // тут подбираем число, чтобы нужный контент был на экране, я взял просто посередине.
Скроллить нужно для того, чтобы скролл был "бесконечный" в обе стороны.

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

Войдите, чтобы написать ответ

Похожие вопросы