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

相关文章
相关标签/搜索