Как реализовать tablayout с помощью библиотеки androidx. В appcompat v7.26 это было сделано с помощью следующего кода.
Этот код в упражнении, который показывает фрагменты с вкладками:
TabLayout tabLayout = findViewById(R.id.tab_layout);
tabLayout.addTab(tabLayout.newTab().setText("Home"));
tabLayout.addTab(tabLayout.newTab().setText("About"));
tabLayout.addTab(tabLayout.newTab().setText("Contact"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
final ViewPager viewPager = findViewById(R.id.view_pager);
TabsAdapter tabsAdapter = new TabsAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(tabsAdapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
И адаптер, который используется для настройки адаптера вкладок:
public class TabsAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
public TabsAdapter(FragmentManager fm, int NoofTabs){
super(fm);
this.mNumOfTabs = NoofTabs;
}
@Override
public int getCount() {
return mNumOfTabs;
}
@Override
public Fragment getItem(int position){
switch (position){
case 0:
HomeFragment home = new HomeFragment();
return home;
case 1:
AboutFragment about = new AboutFragment();
return about;
case 2:
ContactFragment contact = new ContactFragment();
return contact;
default:
return null;
}
}
}
Но каким будет способ реализации фрагментов с вкладками с использованием
com.google.android.material.tabs.TabLayout