Ich habe eine grundlegende PagerAdapter:Ein PagerAdapter für mehrere Fragmente
public class PagerAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public PagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
public PagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
Main tab1 = new Main();
return tab1;
case 1:
Secondary tab2 = new Secondary();
return tab2;
case 2:
Third tab3 = new Third();
return tab3;
default:
return null;
}
}
@Override
public int getCount() {
return 3;
}
}
Es perfekt für eine tablayout und 3 Fragmente arbeitet, die in dem viewpager angezeigt werden. Ich habe mehrere gleiche Fragment-Design (gleiche Tabs) über ein paar Fragmente. Ist es möglich, diesen einen PagerAdapter mit mehreren Optionen (Fragmenten) zu verwenden, so müssen nur die Klassen geändert werden, die instanziiert werden. Main tab1 = new Main();
bis SomeOtherClass tab1 = new SomeOtherClass();
. Ich habe versucht, dies mit Parametern und Variablen, aber keinen Erfolg.
Ihre Frage ist nicht klar. –
@AbhishekBansal Ich habe mehrere im Grunde die gleichen Fragmente nur mit unterschiedlichen Namen, was ich tun möchte, ist mit einem Pageradter die Fragmente im Viewpager zu steuern. Die angezeigten Fragmente hängen von einer zuvor ausgewählten Option (Schaltfläche) ab. Sie können geändert werden. Zum Beispiel sind die angezeigten Fragmente das nächste Mal A, B und C, wenn die andere Option ausgewählt ist, sind die angezeigten Fragmente D, E und F. Und dies wird alles unter Verwendung eines Pager-Adapters gesteuert. – squash