В моем приложении (дизайн материалов) Я хотел бы показать (скажем) 10 вкладок. Из этих вкладок полоса вкладок должна удерживаться, например. 4. Теперь вкладка отображает все заголовки с двумя буквами на вкладку. Как создать скользящую полосу? Итак, я могу прокрутить полосу вкладок до правой вкладки? Я знаю, что есть пользовательская полоса, я бы хотел использовать как можно больше стандартных средств.Android - дизайн материалов: вкладка со скользящей вкладкой (заголовки)
1 - Настройка вкладки пейджера:
private void setupTabPager() {
viewPager = (ViewPager) findViewById(R.id.pager);
final PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
// UserFeedback.show("Tab selected: " + tab.getText());
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
2 - Настройка вкладок макета:
private void setupTablayout() {
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
if (tabLayout == null) {
return;
}
// tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabGravity(TabLayout.MODE_SCROLLABLE);
tabLayout.addTab(tabLayout.newTab().setText("Folders"));
tabLayout.addTab(tabLayout.newTab().setText("Items"));
3 - PageAdapter простирающуюся FragmentStatePagerAdapter:
public class PagerAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
public PagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case MainActivity.FRAGMENT_GROUPS_AND_ITEMS:
return new FragmentGroupsAndItems();
case MainActivity.FRAGMENT_FOLDERS:
return new FragmentFolders();
.... }