public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
Log.v(TAG, "onCreateView");
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
// setting up the view pager and tab layout
mViewPager = (ViewPager) rootView.findViewById(R.id.view_pager);
mTabLayout = (TabLayout) rootView.findViewById(R.id.tab_layout);
PageAdapter adapter = new PageAdapter(getFragmentManager());
mViewPager.setAdapter(adapter);
mTabLayout.setupWithViewPager(mViewPager);
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout));
return rootView;
}
Meine benutzerdefinierten Pager-Adapter sieht wie folgt aus:Es ist möglich, Registerkarten in ViewPager zur Laufzeit hinzuzufügen/zu entfernen?
public class PageAdapter extends FragmentStatePagerAdapter {
public PageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return new GroupTabFragment(position);
}
@Override
public CharSequence getPageTitle(int position) {
String title = "";
switch (position) {
case 0:
title = "Game"; // this is from a template, i have to
break; // return title dynamically
case 1:
title = "Movie";
break;
}
return title;
}
@Override
public int getCount() {
return 2; // the tabs number is a subject of change
} // i don't know it from the begining
}
Das Problem, das ich habe ist, dass ich habe eine Registerkarte hinzuzufügen oder zu entfernen, wenn eine Schaltfläche geklickt wird, oder so etwas.
Auf jeder Registerkarte wird eine klassische Liste von Objekten angezeigt. Danke.
Gibt es eine Möglichkeit, bei einem Klick ein weiteres Tab hinzuzufügen? –
jup. 'data.add (neues YourFragment()); adapter.notifyDataSetChanged(); ' – AnZ