垂直竖向的Android TabLayout
来源:互联网 发布:唐韦星追王晨星知乎 编辑:程序博客网 时间:2024/06/06 02:41
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
<q.rorbin.verticaltablayout.VerticalTabLayout 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"></q.rorbin.verticaltablayout.VerticalTabLayout>
3. 属性说明
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) {
}
});
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<String> 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;
}
});
List<String> 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 0
- 垂直竖向的Android TabLayout
- VerticalTabLayout 竖向的TabLayout 支持箭头特效
- Android 自定义控件:垂直滚动的TextView实现竖向跑马灯效果
- 垂直的TabLayout代码案例
- android 竖向的progress bar
- Android 横向竖向的抽屉菜单
- android 竖向SeekBar控件的自定义
- Android:TabLayout的用法
- Android TabLayout的使用
- android Tablayout的使用
- Android--TabLayout的用法
- 垂直竖向,水平滚动插件插件
- <Android>自定义竖向seekbar
- Android RadioGroup中横向、竖向布局RadioButton的问题
- Android RadioGroup中横向、竖向布局RadioButton的问题
- Android之自定义最简单的竖向引导页
- Android TabLayout的简单用法
- android TabLayout的简单使用
- nexus3创建maven私有仓库——安装windows版
- cocoapods 常用命令总结
- C#操作Excel文档
- TCP建立连接和断开连接过程
- 正则表达式中的贪婪匹配和懒惰匹配
- 垂直竖向的Android TabLayout
- js 获取最后一个字符
- 设计模式之单例模式(线程安全)
- Struts2配置文件详解
- 比特币原理整理(一)
- java主线程等待所有子线程执行完毕在执行
- win10下导jar包入Maven仓库出错的解决方法
- Learning to remove soft shadows
- php use 操作符闲话