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样式时没有这种问题,不知道是什么原因,有知道原因的还请告知一下,谢谢。

参考资料:

作者:fozero
声明:原创文章,转载请注意出处!http://www.jianshu.com/p/a729fa3c4754
标签:ReactNative

react-native-scrollable-tab-view组件的简单使用的更多相关文章

  1. React Native 项目常用第三方组件汇总

    React Native 项目常用第三方组件汇总 https://www.jianshu.com/p/d9cd9a868764?utm_campaign=maleskine&utm_conte ...

  2. react native底部tab栏切换

    1.安装tab栏插件 npm i react-native-tab-navigator --save 2.引入对应的组件和tab插件 import { Platform, StyleSheet, Te ...

  3. React Native知识5-Touchable类组件

    React Native 没有像web那样可以给元素绑定click事件,前面我们已经知道Text组件有onPress事件,为了给其他组件 也绑定点击事件,React Native提供了3个组件来做这件 ...

  4. react实现的tab切换组件

    我有点想要吐槽,因为用原生的js实现起来挺简单的一个小东西,改用react来写却花了我不少时间,也许react的写法只有在复杂的web应用中才能体现出它的优势吧!不过吐槽归吐槽,对react这种优雅的 ...

  5. React Native 之 定义的组件 (跨文件使用)

    哈哈的~~~今天介绍的是自定义组件 然后去使用这个组件,让这个组件传递这各种文件之间  哈哈  下面开始吧!!!! 我们所要创建的是一个自定义的Button,先创建一个js文件起名为MyButton, ...

  6. React Native的SliderIOS滑块组件

    import React,{Component}from 'react'; import { AppRegistry, StyleSheet, Text, View, SliderIOS, } fro ...

  7. 8、手把手教React Native实战之ReactJS组件生命周期

    1.创建阶段 getDefaultProps:处理props的默认值 在React.createClass调用 2.实例化阶段 React.render(<HelloMessage 启动之后 g ...

  8. react native 的图表开源组件react-native-chart-android

    react-native-chart-android是一个图表开源组件,使用方法可以去这里 由于需要在数据上加上触摸事件,而github上没有说明看源码找了半天才找到下面的解决方法,特此记录一下: 在 ...

  9. [RN] React Native 删除第三方开源组件依赖包 后 还要做的 (以 删除 react-native-video为例)

    近期测试使用了下  react-native-video 使用一直不成功,后来想着删除掉, 使用命令: npm uninstall react-native-video 重新编译后,还是一直报错 后来 ...

  10. 从web移动端布局到react native布局

    在web移动端通常会有这样的需求,实现上中下三栏布局(上下导航栏位置固定,中间部分内容超出可滚动),如下图所示: 实现方法如下: HTML结构: <div class='container'&g ...

随机推荐

  1. Python爬虫:用BeautifulSoup进行NBA数据爬取

    爬虫主要就是要过滤掉网页中没用的信息.抓取网页中实用的信息 一般的爬虫架构为: 在python爬虫之前先要对网页的结构知识有一定的了解.如网页的标签,网页的语言等知识,推荐去W3School: W3s ...

  2. HDU3507 Print Article (斜率优化DP基础复习)

    pid=3507">传送门 大意:打印一篇文章,连续打印一堆字的花费是这一堆的和的平方加上一个常数M. 首先我们写出状态转移方程 :f[i]=f[j]+(sum[i]−sum[j])2 ...

  3. BZOJ 1032 JSOI2007 祖码Zuma 动态规划

    题目大意:给定一个祖玛序列,任选颜色射♂出珠子,问最少射♂出多少珠子 输入法近期越来越奇怪了0.0 首先我们把连续同样的珠子都缩在一起 令f[i][j]表示从i開始的j个珠子的最小消除次数 初值 f[ ...

  4. lua 中pairs 和 ipairs差别

    ipairs 和pairs在lua中都是遍历tbale的函数可是两者有差别 1.pairs遍历table中的全部的key-vale 而ipairs会依据key的数值从1開始加1递增遍历相应的table ...

  5. AbstractFactory抽象工厂模式

    #include <iostream> using namespace std; class ProductAbase { public: ProductAbase(){} virtual ...

  6. Codeforces548A:Mike and Fax

    While Mike was walking in the subway, all the stuff in his back-bag dropped on the ground. There wer ...

  7. python 金融网贷数据,pandas进行数据分析并可视化系列 (词频统计,基本操作)

    需求: 某某金融大亨想涉足金融网贷,想给网贷平台取一个名字,那么取什么名字,名字里面包含哪些关键字,在行业内的曝光率会相比较高一些呢? 可以理解为: 你负责某某网贷平台的网络推广工作,如何进一步优化各 ...

  8. Spring:Bean生命周期

    关于Bean生命周期,我在网上找了两张图: 图1: 图2: 总结起来就是: Bean构建: Bean对象创建 > @Autowired | @Resource> @PostConstruc ...

  9. CoreJava逻辑思维-顺时针打印自定义矩阵

    CoreJava逻辑思维-顺时针打印自定义矩阵 这两天回顾了一下刚入Java时的一些比较有意思的逻辑题,曾经也费劲脑汁的思考过的一些问题,比如百钱百鸡最简单的算法啦之类的,而今天博主想说的是一个循环打 ...

  10. C# 委托与事件详解(三)

    今天我接着上面的3篇文章来讲一下,为什么我们在日常的编程活动中遇到这么多sender,EventArgs e 参数:protected void Page_Load(object sender, Ev ...