zoukankan      html  css  js  c++  java
  • Android Design Support Library——TabLayout

      TabLayout——选项卡布局,通过选项卡的方式切换view并不是material design中才有的新概念,选项卡既可以固定,也可以滚动显示效果如下:

      

      通过addTab方法可以实现选项卡的动态添加:

    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中的声明

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

       此外当选项卡数量过多时通过tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);可以设置为选项卡水平滚动。

  • 相关阅读:
    责任链简单解析
    mysql实践一:SQL基础
    Aix6.1下su命令不能切换环境变量的问题
    maven 打包错误 Cannot access central in offline mode
    登陆并访问k8s的apiserver
    kubernetes 实践五:Service详解
    kubernetes1.16 配置 metrics-server
    kubernetes 实践四:Pod详解
    kubernetes 实践三:使用kubeadm安装k8s1.16.0
    kubernetes 实践二:kubectl命令使用
  • 原文地址:https://www.cnblogs.com/shiwei-bai/p/5139032.html
Copyright © 2011-2022 走看看