我有一個基本PagerAdapter:一個PagerAdapter爲多個片段
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;
}
}
它完全適用於一個tablayout並且被顯示在viewpager 3個片段。我在幾個片段中有多個相同的片段設計(相同的標籤)。是否有可能使用這個帶有多個選項(片段)的PagerAdapter,所以它必須改變的是實例化的類。 Main tab1 = new Main();
至SomeOtherClass tab1 = new SomeOtherClass();
。我試着用參數和變量來做這件事,但沒有成功。
你的問題不清楚。 –
@AbhishekBansal我有多個基本相同的片段,只是名稱不同,我想要做的就是使用一個pageradapter來控制viewpager中的片段。正在顯示的片段取決於先前選擇的選項(按鈕)。他們可以改變。例如,下一次顯示的片段是A,B和C,當選擇另一個選項時,顯示的片段是D,E和F.並且這全部通過使用一個尋呼機適配器來控制 – squash