NavigatorIOS作用:用来iOS上界面之间的跳转。
一、NavigatorIOS常用属性:
barTintColor:背景颜色
navigationBarHidden:隐藏导航栏
shadowHidden:隐藏阴影
tintColor:按钮颜色
titleTextColor:字体颜色
translucent:是否半透明
二、NavigatorIOS使用步骤
- 注意:导航一定要有尺寸,flex:1,否则看不到子控件
- 获取导航:只要是导航下子组件,就能获取导航;当前子组件props自动有两个属性:route,navigator
this.props.navigator
- NavigatorIOS弊端:
- 1.默认图片是渲染,而且没法修改渲染状态
- 2.不能显示两张图片
- 3.不能同时展示图片和文字
- 4.不能跨平台
1.初始化路由
initialRoute:用于初始化路由。其参数对象中的各个属性如下: {
component: function, //加载的视图组件
title: string, //当前视图的标题
passPros: object, //传递的数据
backButtonIcon: Image.propTypes.source, // 后退按钮图标
backButtonTitle: string, //后退按钮标题
leftButtonIcon: Image.propTypes.soruce, // 左侧按钮图标
leftButtonTitle: string, //左侧按钮标题
onLeftButtonPress: function, //左侧按钮点击事件
rightButtonIcon: Image.propTypes.soruce, // 右侧按钮图标
rightButtonTitle: string, //右侧按钮标题
onRightButtonPress: function, //右侧按钮点击事件
}
2.设置尺寸
style={{flex:1}}
3.页面跳转方法
push():加载新界面
pop():返回
popN(n):一次性返回n个页面
replace(route):替换当前的路由。
replacePrevious(route):替换前一个页面的视图并且回退过去。
resetTo(route):取代最顶层的路由并且回退过去。
popToTop():回到最上层视图。
代码示例:
import React, {Component} from 'react'
import
{
AppRegistry,
StyleSheet,
Text,
View,
TouchableOpacity,
Button,
TextInput,
Image,
Dimensions,
NavigatorIOS
}
from 'react-native'
class XMGTwoView extends Component {
render(){
return (
第二个界面
{
3.获取导航页面跳转
this.props.navigator.pop();
}}>返回
)
}
}
class XMGOneView extends Component {
render(){
return (
第一个界面
{
3.获取导航页面跳转
this.props.navigator.push({
component:XMGTwoView,
title:'详情页',
})
{/*console.log(this.props);*/}
}}>跳转
)
}
}
class ReactDemo extends Component {
render(){
return (
1.初始化路由
)
}
}
var styles = StyleSheet.create({
})
AppRegistry.registerComponent('ReactDemo',()=>ReactDemo);
Navigator作用:安卓与iOS界面之间的跳转
一、Navigator使用步骤
1.初始化路由: initialRoute,描述最开始的界面
initialRoute={{component:HomeView}}
2.配置场景: configureScene(route, routeStack),设置跳转方向
_configureScene(route, routeStack) {
return Navigator.SceneConfigs.PushFromLeft;
}
3.渲染场景: renderScene(route, navigator),根据路由,生成组件
_renderScene(route, navigator) {
// 类似
// ...route.props: 获取route中所有属性,传递给HomeView
// ...扩展符, 作用:如果是对象,就获取对象中所有值,如果是数组,就获取数组中所有值
return ( )
}
4.设置尺寸
style={{flex:1}}
5.跳转界面同NavigatorIOS
使用代码示例:
import React, {Component} from 'react'
import
{
AppRegistry,
StyleSheet,
Text,
View,
TouchableOpacity,
Button,
TextInput,
Image,
Dimensions,
}
from 'react-native'
import {Navigator} from 'react-native-deprecated-custom-components'
class XMGTwoView extends Component {
render(){
return (
第二个界面
{
5.跳转界面同NavigatorIOS
this.props.navigator.pop();
}}>返回
)
}
}
class XMGOneView extends Component {
render(){
return (
第一个界面
{
5.跳转界面同NavigatorIOS
this.props.navigator.push({
component:XMGTwoView
})
}}>跳转
)
}
}
class ReactDemo extends Component {
// 3.渲染场景,根据路由,生成组件
_renderScene(route, navigator){
return ( )
}
// 2.配置场景,设置跳转方向
_configureScene(){
return Navigator.SceneConfigs.PushFromRight;
}
render(){
return (
1.初始化路由
)
}
}
var styles = StyleSheet.create({
})
AppRegistry.registerComponent('ReactDemo',()=>ReactDemo);