VerticalTabLayout

垂直竖向的Android TabLayout

一些特性

  • 支持自定义Indicator大小

  • 支持自定义Indicator位置

  • 支持Indicator设置圆角

  • 支持Tab设置Badge

  • 支持Adapter的方式创建Tab

  • 多种Tab高度设置模式

  • Tab支持android:state_selected

  • 很方便的和ViewPager结合使用

  • 很方便的和Fragment结合使用

1. gradle

compile 'q.rorbin:VerticalTabLayout:1.2.5'

2. xml

    android:id="@+id/tablayout"    android:layout_width="66dp"    android:layout_height="match_parent"    android:background="#EDEDED"    app:indicator_color="@color/colorPrimary"    app:indicator_width="2dp"    app:indicator_corners="@dimen/activity_text_padding"    app:indicator_gravity="left"    app:tab_height="50dp"    android:visibility="visible"    app:tab_mode="scrollable">

3. 属性说明

xml code 说明
app:indicator_color setIndicatorColor 指示器颜色
app:indicator_width setIndicatorWidth 指示器宽度
app:indicator_gravity setIndicatorGravity 指示器位置
app:indicator_corners setIndicatorCorners 指示器圆角
app:tab_mode setTabMode Tab高度模式
app:tab_height setTabHeight Tab高度
app:tab_margin setTabMargin Tab间距

4. 创建Tab的方式

  • 普通方式创建
tablayout.addTab(new QTabView(getActivity()));
tablayout.addOnTabSelectedListener(new VerticalTabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabView tab, int position) {
               
         }
         @Override
         public void onTabReselected(TabView tab, int position) {

         }
  });
  • Adapter方式创建
tablayout.setTabAdapter(new TabAdapter() {
           List titles;
           {
               titles = new ArrayList<>();
               titles.add("头条");
               titles.add("社会");
               titles.add("国际");
               titles.add("娱乐");
               titles.add("体育");
               titles.add("军事");
               titles.add("科技");
               titles.add("财经");
               titles.add("时尚");
               Collections.addAll(titles);
           }
           @Override
           public int getCount() {
               return titles.size();
           }

           @Override
           public TabView.TabBadge getBadge(int position) {
               return null;
           }

           @Override
           public QTabView.TabIcon getIcon(int position) {
               return null;
           }

           @Override
           public QTabView.TabTitle getTitle(int position) {
               return new QTabView.TabTitle.Builder()
                       .setContent(titles.get(position))
                       .setTextColor(Color.BLUE, Color.BLACK)
                       .build();
           }

           @Override
           public int getBackground(int position) {
               return 0;
           }
       });

按照自己的需要进行返回相应的值即可,不需要的返回0或者null也可以选择使用SimpleTabAdapter,内部空实现了TabAdapter的所有方法TabBadge、TabIcon、TabTitle使用build模式创建。
  • 结合ViewPager使用
tablayout.setupWithViewPager(viewpager);

ViewPager的PagerAdapter可选择实现TabAdapter接口

如果您需要使用垂直竖向的ViewPager,推荐您使用:https://github.com/youngkaaa/YViewPagerDemo

  • 结合Fragment使用
tabLayout.setupWithFragment(FragmentManager manager, int containerResid, List<Fragment> fragments, TabAdapter adapter)

5. 设置badge

int tabPosition = 3;int badgeNum = 55;tablayout.setTabBadge(tabPosition,badgeNum);Badge badge = tablayout.getTabAt(position).getBadgeView();Badge使用方法请移步https://github.com/qstumn/BadgeView

转载出处:https://github.com/qstumn/VerticalTabLayout

http://blog.csdn.net/s003603u/article/details/53114250

更多相关文章

  1. android Q(10)发送通知Notification出现无法推送问题解决方式
  2. [Android] 获取系统顶部状态栏(Status Bar)与底部导航栏(Navigat
  3. Android通知栏的高度获取
  4. Android通过http协议数据交互的两种方式
  5. Android LayoutInflater的几种获得方式
  6. Android在API推荐的方式来实现SQLite数据库的增长、删除、变化、
  7. Android获取View的高宽的方式
  8. Android 通过Post方式提交数据
  9. android启动方式

随机推荐

  1. android 数据库操作 (非ContentProvider)
  2. android中AlertDialog 中setView用法的一
  3. Android之权限管理
  4. Android Touch事件传递机制解析
  5. java.lang.BootstrapMethodError: Except
  6. Android前端RxJava2+Retrofit2;后端Spring
  7. 【5年Android从零复盘系列之五】关于页面
  8. android fragment android.support.v4.ap
  9. Android:通过ValueAnimator动画改变控件长
  10. 关于 Android 进程保活,你所需要知道的一