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】。文章转载请联系作者。
评论