Android Design Support Library——TabLayout

  TabLayout——選項卡布局,經過選項卡的方式切換view並非material design中才有的新概念,選項卡既能夠固定,也能夠滾動顯示效果以下:android

  

  經過addTab方法能夠實現選項卡的動態添加:ide

tabLayout.addTab(tabLayout.newTab().setText("tab1"));

  經過setupWithViewPager()方法能夠和Viewpager關聯起來。此方法使tab的選中事件能更新ViewPager,同時ViewPager 的頁面改變能更新tab的選中狀態。注意若是與Viewpager關聯使用是經過PagerAdapter 的 getPageTitle() 建立選項卡。佈局

 private void setupViewPager(ViewPager viewPager) {
        Adapter adapter = new Adapter(getSupportFragmentManager());
        adapter.addFragment(new CheeseListFragment(), "Category 1");
        adapter.addFragment(new CheeseListFragment(), "Category 2");
        adapter.addFragment(new CheeseListFragment(), "Category 3");
        viewPager.setAdapter(adapter);
    }
static class Adapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragments = new ArrayList<>();
        private final List<String> mFragmentTitles = new ArrayList<>();

        public Adapter(FragmentManager fm) {
            super(fm);
        }

        public void addFragment(Fragment fragment, String title) {
            mFragments.add(fragment);
            mFragmentTitles.add(title);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragments.get(position);
        }

        @Override
        public int getCount() {
            return mFragments.size();
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitles.get(position);
        }
    }
 ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
        if (viewPager != null) {
            setupViewPager(viewPager);
        } 

TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);

  xml中的聲明spa

        <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" />

   此外當選項卡數量過多時經過tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);能夠設置爲選項卡水平滾動。code

相關文章
相關標籤/搜索