这是我参与8月更文挑战的第8天,活动详情查看:8月更文挑战
React Navigation是 Facebook、Expo 和社区的开发者们合作的结果,是基于 Javascript 的可扩展且使用简单的导航解决方案需求的组件。
相关属性
StackNavigator属性
-
navigationOptions:配置StackNavigator的一些属性。
-
title:标题,如果设置了这个导航栏和标签栏的title就会变成一样的,不推荐使用
-
header:可以设置一些导航的属性,如果隐藏顶部导航栏只要将这个属性设置为null
-
headerTitle:设置导航栏标题,推荐
-
headerBackTitle:设置跳转页面左侧返回箭头后面的文字,默认是上一个页面的标题。可以自定义,也可以设置为null
-
headerTruncatedBackTitle:设置当上个页面标题不符合返回箭头后的文字时,默认改成"返回"
-
headerRight:设置导航条右侧。可以是按钮或者其他视图控件
-
headerLeft:设置导航条左侧。可以是按钮或者其他视图控件
-
headerStyle:设置导航条的样式。背景色,宽高等
-
headerTitleStyle:设置导航栏文字样式
-
headerBackTitleStyle:设置导航栏‘返回’文字样式
-
headerTintColor:设置导航栏颜色
-
headerPressColorAndroid:安卓独有的设置颜色纹理,需要安卓版本大于5.0
-
gesturesEnabled:是否支持滑动返回手势,iOS默认支持,安卓默认关闭
-
screen:对应界面名称,需要填入import之后的页面
-
mode:定义跳转风格
-
card:使用iOS和安卓默认的风格
-
modal:iOS独有的使屏幕从底部画出。类似iOS的present效果
-
headerMode:返回上级页面时动画效果
-
float:iOS默认的效果
-
screen:滑动过程中,整个页面都会返回
-
none:无动画
-
cardStyle:自定义设置跳转效果
-
transitionConfig: 自定义设置滑动返回的配置
-
onTransitionStart:当转换动画即将开始时被调用的功能
-
onTransitionEnd:当转换动画完成,将被调用的功能
-
path:路由中设置的路径的覆盖映射配置
-
initialRouteName:设置默认的页面组件,必须是上面已注册的页面组件
-
initialRouteParams:初始路由参数
注意:
path属性适用于其他app或浏览器使用url打开本app并进入指定页面。path属性用于声明一个界面路径,例如:【/pages/Home】。此时我们可以在手机浏览器中输入:app名称://pages/Home来启动该App,并进入Home界面。
TabNavigator属性介绍
-
screen:和导航的功能是一样的,对应界面名称,可以在其他页面通过这个screen传值和跳转。
-
navigationOptions:配置TabNavigator的一些属性
-
title:标题,会同时设置导航条和标签栏的title
-
tabBarVisible:是否隐藏标签栏。默认不隐藏(true)
-
tabBarIcon:设置标签栏的图标。需要给每个都设置
-
tabBarLabel:设置标签栏的title。推荐
导航栏配置
-
tabBarPosition:设置tabbar的位置,iOS默认在底部,安卓默认在顶部。(属性值:‘top’,‘bottom’)
-
swipeEnabled:是否允许在标签之间进行滑动
-
animationEnabled:是否在更改标签时显示动画
-
lazy:是否根据需要懒惰呈现标签,而不是提前,意思是在app打开的时候将底部标签栏全部加载,默认false,推荐为true
-
trueinitialRouteName: 设置默认的页面组件
-
backBehavior:按 back 键是否跳转到第一个Tab(首页), none 为不跳转
-
tabBarOptions:配置标签栏的一些属性iOS属性
-
activeTintColor:label和icon的前景色 活跃状态下
-
activeBackgroundColor:label和icon的背景色 活跃状态下
-
inactiveTintColor:label和icon的前景色 不活跃状态下
-
inactiveBackgroundColor:label和icon的背景色 不活跃状态下
-
showLabel:是否显示label,默认开启 style:tabbar的样式
-
labelStyle:label的样式安卓属性
-
activeTintColor:label和icon的前景色 活跃状态下
-
inactiveTintColor:label和icon的前景色 不活跃状态下
-
showIcon:是否显示图标,默认关闭
-
showLabel:是否显示label,默认开启 style:tabbar的样式
-
labelStyle:label的样式 upperCaseLabel:是否使标签大写,默认为true
-
pressColor:material涟漪效果的颜色(安卓版本需要大于5.0)
-
pressOpacity:按压标签的透明度变化(安卓版本需要小于5.0)
-
scrollEnabled:是否启用可滚动选项卡 tabStyle:tab的样式
-
indicatorStyle:标签指示器的样式对象(选项卡底部的行)。安卓底部会多出一条线,可以将height设置为0来暂时解决这个问题
-
labelStyle:label的样式
-
iconStyle:图标样式
DrawerNavigator属性介绍
DrawerNavigatorConfig
-
drawerWidth - 抽屉的宽度
-
drawerPosition - 选项是左或右。 默认为左侧位置
-
contentComponent - 用于呈现抽屉内容的组件,例如导航项。 接收抽屉的导航。 默认为DrawerItems
-
contentOptions - 配置抽屉内容
-
initialRouteName - 初始路由的routeName
-
order - 定义抽屉项目顺序的routeNames数组。
- 路径 - 提供routeName到路径配置的映射,它覆盖routeConfigs中设置的路径。
- backBehavior - 后退按钮是否会切换到初始路由? 如果是,设置为initialRoute,否则为none。 默认为initialRoute行为
DrawerItems的contentOptions属性
- activeTintColor - 活动标签的标签和图标颜色
- activeBackgroundColor - 活动标签的背景颜色
- inactiveTintColor - 非活动标签的标签和图标颜色
- inactiveBackgroundColor - 非活动标签的背景颜色 内容部分的样式样式对象
- labelStyle - 当您的标签是字符串时,要覆盖内容部分中的文本样式的样式对象
从上述中大致了解了react-navigation三种组件的一些基本属性,所以到我们甩起袖子撸代码见证下奇迹了。