1

В моем приложении (дизайн материалов) Я хотел бы показать (скажем) 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(); 
    .... } 

ответ

1

Почему бы Вы помещаете свои вкладки в HorizontalScrollView?

Это может вам помочь.