Хобрук: Ваш путь к мастерству в программировании

Как настроить адаптер для круглой вкладки с возможностью прокрутки

Я пытаюсь настроить пейджер с бесконечным просмотром (вкладка с круговой прокруткой), используя Infinite ViewPager но когда я попытался установить адаптер

1. Работает только с конечной стороны (последняя позиция).

2. Не работает начальная (позиция 0) сторона.

3. Повторяет последний фрагмент при дальнейшей прокрутке.

Мой адаптер

 private InfiniteViewPager pager = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

pager = (InfiniteViewPager) findViewById(R.id.pager);
FragmentManager fragmentManager = getSupportFragmentManager();
pager.setAdapter(new MyAdapter(fragmentManager));
pager.setPageTransformer(true, new CubeOutTransformer());
pager.setCurrentItem(2);

}

Мой класс адаптера

class MyAdapter extends FragmentPagerAdapter {

public MyAdapter(FragmentManager fm) {
super(fm);
}
public int getActualPosition(int i){
return i < 5? i : 0;
}
@Override
public Fragment getItem(int i) {
Fragment fragment = null;
i = getActualPosition(i);
if (i == 0) {
    fragment = new Albums();
}
if (i == 1) {
    fragment = new Artists();
}
if (i == 2) {
    fragment = new Songs();
}
if (i == 3) {
    fragment = new Genres();
}
if (i == 4) {
    fragment = new Playlists();
}
return fragment;
}

@Override
public int getCount() {
return Integer.MAX_VALUE;
}

@Override
public CharSequence getPageTitle(int position) {
String title = new String();
if (position == 0) {
    return "ALBUMS";
}
if (position == 1) {
    return "ARTISTS";
}
if (position == 4) {
    return "PLAYLIST";
}
if (position == 3) {
    return "GENRES";
}
if (position == 2) {
    return "SONGS";
}
return title;
}
}

Я прошел через бесконечный Адаптер пейджера и Адаптер моего пейджера

но когда я пытаюсь установить адаптер внутри другого адаптера, я получаю сообщение об ошибке в своем классе адаптера. где я делаю неправильно и как я могу исправить прокрутку как с начала, так и с конца.


Ответы:


1

Вы должны установить адаптер следующим образом

MyAdapter adapter=new MyAdapter(fragmentManager); InfinitePagerAdapter myAdapter= new InfinitePagerAdapter(adapter); pager.setAdapter(myAdapter);

Также в вашем адаптере измените этот код

из этого

@Override public int getCount() { return Integer.MAX_VALUE; }

to

@Override public int getCount() { return 5; }

11.08.2016
Новые материалы

5 проектов на Python, которые нужно создать прямо сейчас!
Добро пожаловать! Python — один из моих любимых языков программирования. Если вы новичок в этом языке, перейдите по ссылке ниже, чтобы узнать о нем больше:

Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

«Очень простой» эволюционный подход к обучению с подкреплением
В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

Фишинг — Упаковано и зашифровано
Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

ВЫ РЕГРЕСС ЭТО?
Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

Не зря же это называют интеллектом
Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..