React-Navigation 5.x 的 demo案例
一、 stack路由结构的一些效果
(1)横向过渡动画
(2)整个选项卡样式修饰
最终实现效果:动态图

以上两个功能实现都很简单,我测试时,关注了一个问题,navigation 丢失。stackNavigator除了直接组件会自动拥有navigation属性,其余的都没有,那么解决的办法就是使用withNavigation导出要使用navigation的组件。该属性具体的包在
import {withNavigation} from '@react-navigation/compat'
功能3:准确叫出每个部位的专业名字(不然每次搜索都不知道叫啥,悲催)

我将 https://reactnavigation.org/docs/stack-navigator 对导航栏、后退按钮、屏幕标题的处理总结在下面代码中
<Stack.Screen name="Chat" component={Chat} options={{
//1.导航栏的设置
headerMode: 'screen',
headerShown: true, //导航栏是否显示
headerStyle:{ //导航栏的样式
shadowOffset: {width: 0, height: 0},
shadowColor: '#1a505050',
shadowRadius: 2, //阴影模糊半径
shadowOpacity: 1, // 阴影不透明度
elevation: 1, //让安卓拥有灰色阴影 --- 必须
},
//2. 设置导航标题的“名字”和“位置”(同时给多个屏幕设置标题?)
headerTitle: "聊天",
headerTitleAlign:'center',
//3. 在headerLeft中可以完全覆盖,后退按钮,也可以使用headerBackImage
headerLeft:()=><Image style={{width:9,height:16,marginHorizontal:25}} source={require('./img/return_icon.png')}/>
}} />
功能4:stack路由切换时,横向过渡动画
import {TransitionPresets} from '@react-navigation/stack';
<NavigationContainer>
<Stack.Navigator
screenOptions={{
//这三个点是,解构赋值Es6的新写法
...TransitionPresets.SlideFromRightIOS
}}
>
<Stack.Screen name="Login" component={Login} options={{headerShown:false}}/>
<Stack.Screen name="TabCollection" component={TabCollection} />
<Stack.Screen name="Chat" component={Chat}/>
</Stack.Navigator>
</NavigationContainer>
具体看官网解释: https://reactnavigation.org/docs/stack-navigator/#transitionpresets
二、createMaterialTopTabNavigator导航的样式修饰(方便下次直接使用)
1. indicator指示器设置固定宽度,居中
2. 修改选项卡底部样式
效果图如下

import React,{Component} from 'react';
import {View,Text,StyleSheet} from 'react-native';
import { NavigationContainer } from '@react-navigation/native'; //这个只有首页需要
import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';
// 谁看过我
class HomeScreen extends React.Component{
render(){
return (
<View style={styles.box}>
<Text>A看过我</Text>
<Text>B看过我</Text>
</View>
)
}
}
// 我看过谁
class SettingsScreen extends React.Component{
render(){
return (
<View style={styles.box}>
<Text>我看过 《斗罗大陆》</Text>
<Text>我看过 《狐妖小红娘》</Text>
</View>
)
}
}
// 构建tab路由
let MyTab = createMaterialTopTabNavigator();
function App() {
return (
<NavigationContainer>
<MyTab.Navigator
tabBarOptions={{
activeTintColor: "#345484", //选中状态标签颜色
inactiveTintColor: "#232325",//未选中状态标签颜色
labelStyle:{ //标签文字大小
fontSize: 16
},
indicatorStyle:{//底部指示器样式对象,设置固定宽度居中
width:32,
left:"25%",
marginLeft: -16,
height: 2,
backgroundColor:"#345484",
},
style:{
shadowOffset: {width: 0, height: 0},
shadowColor: '#1a505050',
shadowRadius: 2, //阴影模糊半径
shadowOpacity: 1, // 阴影不透明度
elevation: 1,
}
}}
>
<MyTab.Screen name="Home" options={{title:"谁看过我"}} component={HomeScreen} />
<MyTab.Screen name="Settings" options={{title:"我看过谁"}} component={SettingsScreen} />
</MyTab.Navigator>
</NavigationContainer>
);
}
let styles = StyleSheet.create({
box:{
flex:1,backgroundColor:'#fff',justifyContent:'center',alignItems:'center'
}
});
export default App;
这里还有一些关于react-navigation 5.x我所遇到的问题
https://www.cnblogs.com/tengyuxin/p/13394646.html
React-Navigation 5.x 的 demo案例的更多相关文章
- react-native 学习 ----- React Navigation
很久没有的登陆博客园了,密码都是找回的,从当年的大学生已经正常的走上了程序员的道路,看到之前发的博客还是写的android,现在自己已经在使用了react-native了. 大学毕业了,做了java后 ...
- react-native导航器 react navigation 介绍
开发环境搭建好之后,想要进一步了解react-native,可以先从react-native官网上的电影列表案例入手: https://reactnative.cn/docs/0.51/sample- ...
- React Native常用组件之TabBarIOS、TabBarIOS.Item组件、Navigator组件、NavigatorIOS组件、React Navigation第三方
以下内容为老版本React Native,faceBook已经有了新的导航组件,请移步其他博客参考>>[我是传送门] 参考资料:React Navigation react-native ...
- React Navigation & React Native & React Native Navigation
React Navigation & React Native & React Native Navigation React Navigation https://facebook. ...
- [RN] 04 - React Navigation
react-navigation和react-router的对比: 支持的平台: react-navigation: react-native react-router: react-native.r ...
- React-native 导航插件React Navigation 4.x的使用
React-native 导航插件React Navigation 4.x的使用 文档 英文水平可以的话,建议直接阅读英文文档 简单使用介绍 安装插件 yarn add react-navigatio ...
- [RN] React Navigation 使用中遇到的显示 问题 汇总
React Navigation 使用中遇到的显示 问题 汇总 https://www.jianshu.com/p/8b1f18affc5d
- react navigation goBack()返回到任意页面(不集成redux) 一
方案一: 一.适用场景:在app端开发的时候,相反回到某一个页面的时候保持跳转页面的所有状态不更新,也就是说不触发新的生命周期. 例如:A——>B——>C——>D 要想从D页面直接返 ...
- React Navigation / React Native Navigation 多种类型的导航结合使用,构造合理回退栈
React Navigation 更新到版本5已经是非常完善的一套导航管理组件, 提供了Stack , Tab , Drawer 导航方式 , 那么我们应该怎样设计和组合应用他们来构建一个完美的回退栈 ...
- Facebook力推导航库:React Navigation使用详解
本文来自Songlcy投稿:文章地址:http://blog.csdn.net/u013718120/article/details/72357698 一.开源库介绍 今年1月份,新开源的react- ...
随机推荐
- Django3.X使用富文本编辑器kindereditor上传图片时一直转圈圈,如何解决
问题描述: 在写bbs项目的时候,老师用的是Django1.X结合富文本编辑器kindeditor,实现了图片上传,但是我在用Django3.X的时候,代码和老师一模一样,上传图片的时候一直转圈圈?? ...
- JSP第七次作业
1.做一个图书类Book id,name,price ,get,set访问器,构造方法2个,1个无参,1个有参做一个测试类,在main中创建3个图书对象,放到list集合中.做一个菜单,可以添加,删除 ...
- 数据库系列:MySQL慢查询分析和性能优化
1 背景 我们的业务服务随着功能规模扩大,用户量扩增,流量的不断的增长,经常会遇到一个问题,就是数据存储服务响应变慢. 导致数据库服务变慢的诱因很多,而RD最重要的工作之一就是找到问题并解决问题. 下 ...
- HuggingNews #0210 这周模型有点多,快来看看吧
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...
- P9_组件-swiper和swiper-item的基本用法
swiper 和 swiper-item 组件的基本使用 实现如图的轮播图效果: swiper 组件的常用属性 list.wxml <swiper class="swiper-cont ...
- 学习Java Day14
今天进一步学习了Java的类,学习了LocalDay:
- Ubuntu下的FTP Servers搭建与连接
1.安装FTP:vsftod sudo apt-get install vsftpd sudo: 使用sudo(super user do)给普通用户赋予权限 不是所有命令都能用sudo执行的,比 ...
- 从零开始使用阿里云OSS服务(白嫖)
阿里云对象存储服务OSS使用记录 1 新人免费开通OSS服务 访问 阿里云官网,登录账号(个人新用户账号),首页搜索 对象存储OSS,点击下方的直达. 点击立即开通,此时会在一个新网页中完成开通 完成 ...
- 3D模型轻量化
近几年,随着国内外文化产业的迅猛发展,3D建模行业迎来黄金发展期. 尤其是在元宇宙时代及数字体验经济时代的大背景下,越来越多的实时.可交互的3D内容将出现在人们的生活中. 有关3D建模师而言,无疑,行 ...
- python基本语法入门
思维导图 https://gitee.com/starry-tong/python-data/blob/pyimage/day03.png python语法注释 """注 ...