安装
1 | $ yarn add react-native-scrollable-tab-view |
renderTabBar
TabBar 的样式,系统提供了两种默认的,分别是 DefaultTabBar
和 ScrollableTabBar
。当然,我们也可以自定义一个。
DefaultTabBar
Tab 会平分在水平方向的空间
1 | import React from 'react' |
ScrollableTabBar
Tab 可以超过屏幕范围,滚动可以显示
1 | import React from 'react' |
children
表示所有子视图的数组,请设置 tabLabel
属性,你可以实现一个简单地包装组件:
1 | import React from 'react' |
onChangeTab
Tab 切换之后会触发此方法,包含一个参数(Object
类型),这个对象有两个参数
i
: 被选中的 Tab 的下标(从 0 开始)ref
: 被选中的 Tab 对象(基本用不到)
其他 Props
tabBarPosition
(String) 默认值'top'
top
:位于屏幕顶部bottom
:位于屏幕底部overlayTop
:位于屏幕顶部,悬浮在内容视图之上(看颜色区分:视图有颜色,Tab 栏没有颜色)overlayBottom
:位于屏幕底部,悬浮在内容视图之上(看颜色区分:视图有颜色,Tab 栏没有颜色)
onScroll
(Function): 视图正在滑动的时候触发此方法,包含一个 Float 类型的数字,范围是[0, tab数量-1]
locked
(Bool): 表示手指是否能拖动视图,默认为false
(表示可以拖动)。设为true
的话,我们只能“点击”Tab 来切换视图。initialPage
(Integer): 初始化时被选中的 Tab 下标,默认是 0(即第一页)tabBarUnderlineStyle
(style): 设置DefaultTabBar
和ScrollableTabBarTab
选中时下方横线的样式tabBarBackgroundColor
(String): 设置整个 Tab 这一栏的背景颜色tabBarActiveTextColor
(String): 设置选中 Tab 的文字颜色tabBarInactiveTextColor(String)
: 设置未选中 Tab 的文字颜色tabBarTextStyle(Object)
: 设置 Tab 文字的样式,比如字号、字体等style
: 系统 View 都拥有的属性,基本不会涉及到。contentProps
: 这里要稍微说下 react-native-scrollable-tab-view 的实现,其实在 Android 平台底层用的是ViewPagerAndroid
,iOS 平台用的是ScrollView
。这个属性的意义是:比如我们设置了某个属性,最后这个属性会被应用在ScrollView
/ViewPagerAndroid
,这样会覆盖库里面默认的,通常官方不建议我们去使用。scrollWithoutAnimation
(Bool,默认为false
): 设置“点击”Tab 时,视图切换是否有动画,默认为false
(即:有动画效果)。prerenderingSiblingsNumber
(Integer): 预加载相近的兄弟节点数量,Infinity
表示渲染所有的兄弟节点, 默认值是0
表示渲染当前页面
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 紫升的博客!
评论