react-native-scrollable-tab-view组件的简单使用
react-native-scrollable-tab-view是一个滑动tab组件,可在tab之间进行切换显示内容
https://github.com/skv-headless/react-native-scrollable-tab-view
1、安装依赖
npm install --save react-native-scrollable-tab-view
2、引入组件
import ScrollableTabView,{DefaultTabBar,ScrollableTabBar} from 'react-native-scrollable-tab-view';
3、组件使用
系统给我们提供了以下默认两种样式 ,当然我们也可以自定义
ScrollableTabBar :Tab可以超过屏幕范围,滚动可以显示
DefaultTabBar : Tab会平分在水平方向的空间
a.使用DefaultTabBar 样式,Tab平分在水平方向的空间
render() {
return (
<ScrollableTabView
renderTabBar={() => <DefaultTabBar/>}>
<Text tabLabel='Tab1'/>
<Text tabLabel='Tab2'/>
<Text tabLabel='Tab3'/>
<Text tabLabel='Tab4'/>
<Text tabLabel='Tab5'/>
<Text tabLabel='Tab6'/>
</ScrollableTabView>
);
}
效果如下:

b.使用ScrollableTabBar 样式,Tab超过屏幕范围,滚动显示
render() {
return (
<ScrollableTabView
style={styles.container}
tabBarPosition='top'//tabBarPosition默认top 位于屏幕顶部 bottom位于屏幕底部 overlayTop悬浮在顶部
initialPage={0} //初始化时被选中的Tab下标,默认是0
locked={false}//表示手指是否能拖动视图 默认false true则不能拖动,只可点击
renderTabBar={() => <ScrollableTabBar />}
tabBarUnderlineStyle={{backgroundColor: '#FF0000'}}//设置DefaultTabBar和ScrollableTabBarTab选中时下方横线的颜色
tabBarBackgroundColor='#FFFFFF'//设置整个Tab这一栏的背景颜色
tabBarActiveTextColor='#9B30FF'//设置选中Tab的文字颜色
tabBarInactiveTextColor='#7A67EE'//设置未选中Tab的文字颜色
tabBarTextStyle={{fontSize: 18}}//设置Tab文字的样式
onChangeTab={(obj) => {//Tab切换之后会触发此方法
console.log('index:' + obj.i);
}}
onScroll={(postion) => { //视图正在滑动的时候触发此方法
// float类型 [0, tab数量-1]
console.log('scroll position:' + postion);
}}
>
<View tabLabel='Tab1'>
<Text>Tab1</Text>
</View>
<View tabLabel='Tab2'>
<Text>Tab2</Text>
</View>
<View tabLabel='Tab3'>
<Text>Tab3</Text>
</View>
<View tabLabel='Tab4'>
<Text>Tab4</Text>
</View>
<View tabLabel='Tab5'>
<Text>Tab5</Text>
</View>
<View tabLabel='Tab6'>
<Text>Tab6</Text>
</View>
</ScrollableTabView>
);
}
效果如下:

这里有个问题,在使用ScrollableTabBar 样式的时候,假如我们设置了tabBarUnderlineStyle选中状态下划线颜色,默认选中第一个tab没有选中下划线样式,在点击tab的时候才会出现下划线样式,而使用DefaultTabBar样式时没有这种问题,不知道是什么原因,有知道原因的还请告知一下,谢谢。

参考资料:
- [React Native]react-native-scrollable-tab-view(入门篇)
http://www.jianshu.com/p/b7788c3d106e - [React Native]react-native-scrollable-tab-view(进阶篇)
http://www.jianshu.com/p/b0cfe7f11ee7 - React Native之react-native-scrollable-tab-view详解
http://blog.csdn.net/xiangzhihong8/article/details/72730951?ref=myread
作者:fozero
声明:原创文章,转载请注意出处!http://www.jianshu.com/p/a729fa3c4754
标签:ReactNative
react-native-scrollable-tab-view组件的简单使用的更多相关文章
- React Native 项目常用第三方组件汇总
React Native 项目常用第三方组件汇总 https://www.jianshu.com/p/d9cd9a868764?utm_campaign=maleskine&utm_conte ...
- react native底部tab栏切换
1.安装tab栏插件 npm i react-native-tab-navigator --save 2.引入对应的组件和tab插件 import { Platform, StyleSheet, Te ...
- React Native知识5-Touchable类组件
React Native 没有像web那样可以给元素绑定click事件,前面我们已经知道Text组件有onPress事件,为了给其他组件 也绑定点击事件,React Native提供了3个组件来做这件 ...
- react实现的tab切换组件
我有点想要吐槽,因为用原生的js实现起来挺简单的一个小东西,改用react来写却花了我不少时间,也许react的写法只有在复杂的web应用中才能体现出它的优势吧!不过吐槽归吐槽,对react这种优雅的 ...
- React Native 之 定义的组件 (跨文件使用)
哈哈的~~~今天介绍的是自定义组件 然后去使用这个组件,让这个组件传递这各种文件之间 哈哈 下面开始吧!!!! 我们所要创建的是一个自定义的Button,先创建一个js文件起名为MyButton, ...
- React Native的SliderIOS滑块组件
import React,{Component}from 'react'; import { AppRegistry, StyleSheet, Text, View, SliderIOS, } fro ...
- 8、手把手教React Native实战之ReactJS组件生命周期
1.创建阶段 getDefaultProps:处理props的默认值 在React.createClass调用 2.实例化阶段 React.render(<HelloMessage 启动之后 g ...
- react native 的图表开源组件react-native-chart-android
react-native-chart-android是一个图表开源组件,使用方法可以去这里 由于需要在数据上加上触摸事件,而github上没有说明看源码找了半天才找到下面的解决方法,特此记录一下: 在 ...
- [RN] React Native 删除第三方开源组件依赖包 后 还要做的 (以 删除 react-native-video为例)
近期测试使用了下 react-native-video 使用一直不成功,后来想着删除掉, 使用命令: npm uninstall react-native-video 重新编译后,还是一直报错 后来 ...
- 从web移动端布局到react native布局
在web移动端通常会有这样的需求,实现上中下三栏布局(上下导航栏位置固定,中间部分内容超出可滚动),如下图所示: 实现方法如下: HTML结构: <div class='container'&g ...
随机推荐
- 【luogu P1396】营救
https://www.luogu.org/problem/show?pid=1396 弱化版的货车运输,用并查集维护连通块,将边按权值升序排序后依次插入直到两点连通,最后插入的边的权值就是最小的拥挤 ...
- springBoot actuator监控配置及使用
准备环境: 一个springBoot工程 第一步:添加以下依赖 <dependency> <groupId>org.springframework.boot</group ...
- 【Java入门提高篇】Day9 Java内部类——静态内部类
今天来说说Java中的最后一种内部类--静态内部类 所谓的静态内部类,自然就是用static修饰的内部类,那用static修饰过后的内部类,跟一般的内部类相比有什么特别的地方呢? 首先,它是静态的,这 ...
- django.db.utils.OperationalError: 1050解决方案
manage.py migrate时进行同步数据库时出现问题;django.db.utils.OperationalError: (1050, "Table '表名' already exi ...
- iscroll4 input textarea不能获得焦点问题
最近在做移动端项目的时候,使用iscroll4实现页面滚动效果,之后发现页面中的input,textarea等不能得到焦点,输入内容. 问题原因是: 使用iscroll之后,输入框无法聚焦,页面文字等 ...
- javascript跳跃式前进(3) - 跳入JSON
前言 JSON崛起不是意外,是顺应时代;相当简洁小巧的书写模式及阅读方式; 基础 看这篇文章: JSON知识点汇总_W3SCHOOL 初步进阶 早期的解析仅仅实用eval() ,可是这货太easy给注 ...
- iOS_4_表情排列
终于效果图: BeyondViewController.h // // BeyondViewController.h // 04_表情排列 // // Created by beyond on 14- ...
- linux系统安全及应用
小伙伴们让我们一起回顾一下Linux系统安全基础知识吧 1. 系统账号清理 对于公司里刚离职或停职不久的人,处于公司信息安全考虑,给他们的账号给锁定就好了. usermod -L wangqingxi ...
- 关于scrapy的piplines
1.进入setting中把ITEM_piplines文件注销去掉 2.在piplines中写好代码 # -*- coding: utf- -*- # Define your item pipeline ...
- Mybatis(基于SqlSessionTemplate的实现) + Spring 练习实战
mybatis学习篇:上次使用映射接口实现Mybatis,有不方便指出就是需要接口,且需要保证接口上不能存在其他的代理.这次通过SqlSessionTemplate基于模板类实现Mybatis,总的来 ...