React Navigation实战中有哪些注意事项

这次给大家带来React Navigation实战中有哪些注意事项,React Navigation实战中的注意事项有哪些,下面就是实战案例,一起来看一下。

一、Navigation Bar

使用navigationbar的时候遇到如下的问题

1.navigation bar的底部有一条黑线

本意做一个bar的颜色和页面颜色一致的页面。只有顶部有两个其他按钮的时候。发现bar的底部有一条黑线。导致bar不能很好的匹配想要的页面效果。在header中设置一下代码中后可去除

static navigationOptions = { ... headerStyle: {    ...    borderBottomWidth: 0,  }, }

登录后复制

2. android 的 Bar底部有一条阴影,自定义Bar背景图无法填充满

react navigation bar在安卓中默认会有一个高度。带来的视觉效果是底部会有一条阴影。而且造成另外一个比较头疼的效果是如果使用了带背景图的自定义Bar时。会发现背景图有覆盖不全的效果。两侧总有一些间隙。iOS中则不会出现此问题。将elevation属性置零后可解决这个问题

 static navigationOptions = { ... headerStyle: {    ...    elevation: 0,  }, }

登录后复制

3.android 中Bar标题居中问题

在安卓中,bar 的标题是居左的。iOS则默认居中。可以通过以下写法居中

static navigationOptions = { ... headerTitleStyle: {    //此属性是标题的Style属性。可以接受标签的style    ...    alignSelf: "center",  }, }

登录后复制

在左侧没有按键的时候。这样写就足够了。但是如果左侧有个返回键或者自定义的其他按键。在安卓中标题就会发生偏移。解决办法是右侧添加一个空按钮

static navigationOptions = { ... headerRight:  }

登录后复制

4.带背景图的Navgation Bar

与源生不同。react navigation bar中并没有背景图这一属性。也就是说我们要使用带背景图的navigation bar的时候必须要使用自定义的view。

import {Header} from "react-navigation";//header 需导入const ImageHeader = props => (          
);static navigationOptions = { ... headerStyle: { //背景颜色必须为透明,不然无法透出底部图片 backgroundColor: "transparent", //安卓中不添加此属性会导致背景图无法铺满 elevation: 0, }, header: props => { return ; }, }

登录后复制

5.当StackNavigator与DrawerNavigator嵌套使用时手势冲突问题

当DrawerNavigator嵌套StackNavigator时。进入StackNav的二级界面后返回手势与打开DrawerNav打开菜单冲突。

static navigationOptions = { ... //禁止打开菜单 drawerLockMode: "locked-closed",  //允许使用返回手势 gesturesEnabled: true, }

登录后复制

此设置按照需求自行修改

5.Navgation Bar高度不一致问题

使用自定义的Bar时。安卓和iOS高度不一致。Android计算Nav高度是从手机顶部开始计算。而iOS默认会向下偏移状态栏的高度。要做到效果统一。需要将安卓的Bar的paddingTop属性设为状态栏高度

import {StatusBar, Platform} from "react-native";navigationOptions = { ... headerStyle: {   ...   paddingTop: Platform.OS === "ios" ? 0 : StatusBar.currentHeight,  }, }

登录后复制

6.navigation Bar上使用自定义按钮

使用headerRight 或者 headerLeft 可以定制按钮或者View

static navigationOptions = { ... headerRight = (        btn      ) }

登录后复制

但是如果onPress方法要用到this.props、this.state或者是类中的其他方法的时候就会出现问题

在每个页面的类中,我们使用static navigationOptions={…}来配置navigation的一些配置。但是由于static 修饰的属性属于类的静态属性。无法调用this的属性方法。所以我们需要使用this.props.navigation.setParams({key:value …})方法来设置header按钮的点击事件。

class Demo extends React,Component{ componentWillMount() {  //绑定方法  this.props.navigation.setParams({rightOnPress: this.rightBtnOnPress}); } //点击方法 rightBtnOnPress = ()=>{  ... }  static navigationOptions = ({navigation}) => {    const params = navigation.state.params || {};    let navigationOptions = {    ...    headerRight = (        btn      )    }    return navigationOptions;  };  ...}

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

JS保留一位数字后移除非数字

JS保留两位小数输入数校验代码

以上就是React Navigation实战中有哪些注意事项的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2762451.html

(0)
上一篇 2025年3月8日 09:56:05
下一篇 2025年3月8日 09:56:15

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • React Form组件封装步骤详解

    这次给大家带来React Form组件封装步骤详解,React Form组件封装的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 对于网页系统来说,表单提交是一种很常见的与用户交互的方式,比如提交订单的时候,需要输入收件人、手机号、…

    2025年3月8日
    200
  • JS中常出现哪些BUG和错误

    这次给大家带来JS中常出现哪些BUG和错误,解决JS中常出现BUG和错误的注意事项有哪些,下面就是实战案例,一起来看一下。 计算机程序中的缺陷通常称为 bug。 它让程序员觉得很好,将它们想象成小事,只是碰巧进入我们的作品。 实际上,当然,…

    编程技术 2025年3月8日
    200
  • React给Vue引入容器组件有哪些方法

    这次给大家带来React给Vue引入容器组件有哪些方法,React给Vue引入容器组件的注意事项有哪些,下面就是实战案例,一起来看一下。 如果你使用过 Redux 开发 React,你一定听过 容器组件(Smart/Container Co…

    2025年3月8日
    200
  • react router4+redux控制路由权限步骤详解

    这次给大家带来react router4+redux控制路由权限步骤详解,react router4+redux控制路由权限的注意事项有哪些,下面就是实战案例,一起来看一下。 总体概述 一个完善的路由系统应该是这样子的,当链接到的组件是需要…

    编程技术 2025年3月8日
    200
  • 操作JS中DOM节点有哪些方法

    这次给大家带来操作JS中DOM节点有哪些方法,操作JS中DOM节点的注意事项有哪些,下面就是实战案例,一起来看一下。 DOM操作在JS中可以说是非常常见了吧,很多网页的小功能的实现,比如一些元素的增删操作等都可以用JS来实现。那么在DOM中…

    2025年3月8日
    200
  • React native ListView在移动端中添加顶部下拉刷新与底部点击刷新案例详解

    这次给大家带来react native listview在移动端中添加顶部下拉刷新与底部点击刷新案例详解,react native listview在移动端中添加顶部下拉刷新与底部点击刷新的注意事项有哪些,下面就是实战案例,一起来看一下。 …

    2025年3月8日
    200
  • React Native日期时间选择组件实例详解

    这次给大家带来React Native日期时间选择组件实例详解,使用React Native日期时间选择组件的注意事项有哪些,下面就是实战案例,一起来看一下。 React Native日期时间选择组件:react-native-datepi…

    2025年3月8日
    200
  • react创建单例组件步骤详解

    这次给大家带来react创建单例组件步骤详解,react创建单例组件的注意事项有哪些,下面就是实战案例,一起来看一下。 需求背景 最近有个需求,需要在项目中添加一个消息通知弹窗,告知用户一些信息。 用户看过消息后,就不再弹窗了。 问题 很明…

    编程技术 2025年3月8日
    200
  • js中对小数取整的方法有哪些?(图文教程)

    下面是我给大家整理的在js中对小数取整的方法有哪些?,有兴趣的同学可以去看看。 1.丢弃小数部分,保留整数部分  js:parseInt(7/2) 登录后复制 2.向上取整,有小数就整数部分加1  js: Math.ceil(7/2) 登录…

    编程技术 2025年3月8日
    200
  • 详细解答react

    react算是目前最火的js mvc框架了,写一个react系列的博客,顺便回忆一下react的基础知识,新入门前端的小白,可以持续关注,我会从零开始教大家用react开发一个完整的项目,也会涉及到webpack,node等前端知识,每天会…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论