Мое приложение использует класс android.support.v4.view.ViewPager
.Для каждой страницы в ViewPager я хочу, чтобы был один фрагмент, каждый со своим собственным файлом макета.Каждый фрагмент определяется в своем собственном файле.Мне трудно реализовать это.Для уточнения есть:
1 ViewPager4 файла фрагмента - FragmentOne.class, FragmentTwo.class, FragmentThree.class, FragmentFour.class4 XML-файла макета - frag_one.xml, frag_two.xml, frag_three.xml, frag_four.xml
Примеры, которые я видел, имеют дело только с одним файлом макета.
Вот моя FragmentActivity, гдеViewPager удерживается:
public class Main extends FragmentActivity {
MyAdapter mAdapter;
ViewPager mPager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mAdapter = new MyAdapter(getSupportFragmentManager());
mPager = (ViewPager) findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
}
public static class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return 4;
}
@Override
public Fragment getItem(int position) {
return EditorFragment.newInstance(position);
}
}
}
Мой главный вопрос: как заставить адаптер MyAdapter
распознавать четыре отдельных файла фрагмента и плавно перемещаться по ним с помощью ViewPager?Какие модификации я должен внести в getItem()
?
Любая помощь приветствуется.
РЕДАКТИРОВАТЬ:
Итак, я попробовал то, что предложил Лулумея, и придумал следующее:
РЕДАКТИРОВАТЬ 2: Да, эти операторы перерыва это исправили.Это работает сейчас.Спасибо всем, кто помог!Теперь у меня есть хорошая сегрегация, спасибо.
@Override
public Fragment getItem(int position) {
Fragment f = new Fragment();
switch (position) {
case 0:
f = FragmentOne.newInstance(position);
break;
case 1:
f = FragmentTwo.newInstance(position);
break;
case 2:
f = FragmentThree.newInstance(position);
break;
case 3:
f = FragmentFour.newInstance(position);
break;
}
return f;
}
Приложение запускается, что всегда является хорошим знаком, но застряло на макете четыре.Когда я пролистываю страницу справа, это также макет четыре для всех страниц.Я был уверен, чтобы изменить макет в инфлятор для каждого фрагмента.Я все еще собираюсь работать над этим.@lulumeya - Ты это имел ввиду?