Android - дизайн материала: вкладка со скользящей вкладкой (заголовки)

В моем приложении (Material Design) я хотел бы показать (скажем) 10 вкладок. Из этих вкладок должна располагаться полоса вкладок, например 4. Теперь вкладка показывает все заголовки вкладок с 2 буквами на вкладку. Как я могу создать скользящую вкладку? Так я могу прокрутить полосу вкладки до правой вкладки? Я знаю, что есть специальная вкладка, я хотел бы использовать как можно больше стандартных возможностей.

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();
     .... }

2 ответа

Решение

Смотрите этот урок. Это будет работать для вас. http://www.androidhive.info/2015/09/android-material-design-working-with-tabs/

Это в соответствии с новой реализацией Android Material Design

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

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

Другие вопросы по тегам