ReactNative 进阶(二十四):react-native-scrollable-tab-view 标签导航器组件详解

一、概述
react-native-scrollable-tab-view 标签导航组件可实现点击切换,每个 tab 可以有自己的 ScrollView,点击切换的时候可以维护自己的滚动方向。
 二、使用 react-native-scrollable-tab-view 插件
1、通过 npm 将插件加入项目
2、页面引入插件
3、使用插件
三、属性及方法介绍
renderTabBar(Function:ReactComponent)
TabBar的样式,系统提供了两种默认的,分别是DefaultTabBar和ScrollableTabBar。注意:每个被包含的子视图需要使用tabLabel属性,表示对应Tab显示的文字。
DefaultTabBar:Tab 会平分在水平方向的空间。ScrollableTabBar:Tab 可以超过屏幕范围,滚动可以显示。
tabBarPosition(String,默认值’top’)
top:位于屏幕顶部;bottom:位于屏幕底部;overlayTop:位于屏幕顶部,悬浮在内容视图之上(看颜色区分:视图有颜色,Tab 栏没有颜色);overlayBottom:位于屏幕底部,悬浮在内容视图之上(看颜色区分:视图有颜色,Tab 栏没有颜色);
onChangeTab(Function)Tab 切换之后会触发此方法,包含一个参数(Object类型),这个对象有两个参数:
i:被选中的 Tab 的下标(从 0 开始)
ref:被选中的 Tab 对象(基本用不到)
onScroll(Function)视图正在滑动的时候触发此方法,包含一个 Float 类型的数字,范围是[0, tab的数量-1]locked(Bool,默认为false)表示手指是否能拖动视图,默认为false(表示可以拖动)。设为true的话,我们只能“点击”Tab 来切换视图。initialPage(Integer)初始化时被选中的 Tab 下标,默认是 0(即第一页)。page(Integer)设置选中指定的 Tab。children(ReactComponents)表示所有子视图的数组,比如下面的代码,children 则是一个长度为 6 的数组,元素类型为 Text。
tabBarUnderlineStyle(style)设置DefaultTabBar和ScrollableTabBarTab选中时下方横线的颜 色。tabBarBackgroundColor(String)设置整个 Tab 这一栏的背景颜色tabBarActiveTextColor(String)设置选中 Tab 的文字颜色。tabBarInactiveTextColor(String)设置未选中 Tab 的文字颜色。contentProps(Object)这里要稍微说下react-native-scrollable-tab-view的实现,其实在Android平台底层用的是ViewPagerAndroid,iOS平台用的是ScrollView。这个属性的意义是:比如我们设置了某个属性,最后这个属性会被应用在ScrollView/ViewPagerAndroid,这样会覆盖库里面默认的,通常官方不建议我们去使用。scrollWithoutAnimation(Bool,默认为false)设置“点击”Tab 时,视图切换是否有动画,默认为 false(即:有动画效果)。
四、Demo
示例代码案例:
五、注意事项
<ScrollableTabView>外边必须是弹性盒子,并加上flex:1属性。
<ScrollableTabView>所有父级必须全部是flex:1,不然会出现各种问题,例如无法切换。
六、拓展阅读
版权声明: 本文为 InfoQ 作者【No Silver Bullet】的原创文章。
原文链接:【http://xie.infoq.cn/article/e304774bccbd489d00c220af3】。文章转载请联系作者。











    
评论