代码(别忘记导入包):

import React, { Component } from 'react';import {BackHandler, Platform, ToastAndroid} from 'react-native';
import { createBottomTabNavigator} from '@react-navigation/bottom-tabs';
import {Alert, Image, LogBox} from 'react-native';import HomeScreen from './home_page';
import WorkScreen from './work_page';
import FindScreen from './find_page';
import MineScreen from './mine_page';const Tab = createBottomTabNavigator();class MyTabs extends Component {render() {return (<Tab.Navigator// 图标切换screenOptions={({route}) => ({tabBarIcon: ({ focused, color, size }) => {let image;if(route.name === 'Home') {if (focused) {image = <Image source={require('../../img/select-home.png')} style={{width: 23, height: 23}}></Image>} else {image = <Image source={require('../../img/gray-home.png')} style={{width: 23, height: 23}}></Image>}} else if(route.name === 'Work'){if (focused) {image = <Image source={require('../../img/work-select.png')} style={{width: 23, height: 23}}></Image>} else {image = <Image source={require('../../img/work-normal.png')} style={{width: 23, height: 23}}></Image>}} else if(route.name === 'Find'){if (focused) {image = <Image source={require('../../img/resource-select.png')} style={{width: 23, height: 23}}></Image>} else {image = <Image source={require('../../img/resource-normal.png')} style={{width: 23, height: 23}}></Image>}} else if(route.name === 'Mine'){if (focused) {image = <Image source={require('../../img/mine-select.png')} style={{width: 23, height: 23}}></Image>} else {image = <Image source={require('../../img/mine-normal.png')} style={{width: 23, height: 23}}></Image>}}return image;}})}// 底部文字切换颜色tabBarOptions={{activeTintColor: 'tomato',inactiveTintColor: 'gray',}}><Tab.Screen name="Home" component={HomeScreen} /><Tab.Screen name="Work" component={WorkScreen} /><Tab.Screen name="Find" component={FindScreen} /><Tab.Screen name="Mine" component={MineScreen} /></Tab.Navigator>);}componentDidMount() {if (Platform.OS === 'android'){BackHandler.addEventListener('hardwareBackPress', this.onBackAndroid);}}componentWillUnmount() {if (Platform.OS === 'android') {BackHandler.removeEventListener('hardwareBackPress', this.onBackAndroid);}}onBackAndroid = () => {//禁用返回键if(this.props.navigation.isFocused()) {//判断   该页面是否处于聚焦状态if (this.lastBackPressed && this.lastBackPressed + 2000 >= Date.now()) {//最近2秒内按过back键,可以退出应用。// return false;BackHandler.exitApp();//直接退出APP}else{this.lastBackPressed = Date.now();ToastAndroid.show('再按一次退出应用', 1000);//提示return true;}}}}export default module = MyTabs;

React native连续按两次退出app相关推荐

  1. React Native 实战:构建电商 App

    课程介绍 React Native 充分利用了 Facebook 的现有轮子,是一个很优秀的集成作品,使用 RN 即可做到无需编译就能远程热更新 App,再加上友好的开发方式.快到爆炸的开发效率.RN ...

  2. React Native+Node.js 开发的课程表app项目笔记

    在做项目之前,首先要把React Native 的环境搭建好,这里我就不多做阐述,RN中文网步骤说的挺清楚的,就跟着配置就好. http://reactnative.cn/docs/0.... 一.总 ...

  3. React Native开发的博客园App

    利用React Native花了大概3周的业余时间开发出这一款较完善博客园App,目前只是测试版本(v1.0.0),不过大致的功能都已经完善,如果大家有兴趣有问题可以下面反馈 安卓: 请前往 酷安ht ...

  4. React Native零基础+React Native重入门到精通+混合APP完整版

    第1章 介绍课程目标和学习内容 包括课程概述.课程安排.学习前提.讲授方式等方面的介绍,最后演示了整个招聘App的功能,让同学们对课程项目有一个直观的了解. 1-1 课程导学 第2章 知识储备 2-1 ...

  5. 开发 React Native APP —— 从改造官方Demo开始(二)

    经过第一部分开发 React Native APP -- 从改造官方 Demo 开始(一)介绍,App 框架基本构建完成,这部分主要讨论 UI/交互.App 发布前的准备工作及如何发布,具体内容包括: ...

  6. React Native制作仿美团APP总结

    最近学习了一个网上的React Native项目,利用React Native制作一个类似于美团的App,项目属于对之前React Native常用组件的基本使用,但是仍有一些关键点值得记录.最后做成 ...

  7. 快速创建React Native App

    告诉大家一个好消息,为大家精心准备的React Native视频教程发布了,大家现可以看视频学React Native了. 快速创建React Native App 查看最新的React Native ...

  8. React Native动画入门全解析

    动画 React Native 提供了两个互补的动画系统: 用于创建精细的交互控制动画Animated 用于全局的布局动画LayoutAnimation Animated Animated通过 **. ...

  9. React Native开发之必备React基础

    为了帮助大家快速上手React Native开发,在这本节中将向大家介绍开发React Native所需要的一些React必备基础知识. 概述 本节课将从React的特点.如何使用React.JSX语 ...

  10. 构建了我的第一个React Native应用程序之后,我现在确信这是未来。

    by Taylor Milliman 泰勒·米利曼(Taylor Milliman) 构建了我的第一个React Native应用程序之后,我现在确信这是未来. (After building my ...

最新文章

  1. Django的前世今生
  2. win10专业版和企业版的区别_深度完美Win10_1809_LTSC.1158_64位企业版V2020.0415
  3. 3. 什么是icmp?icmp与ip的关系_你知道如何跟女生,确定恋人关系吗?
  4. HDU 1024Max Sum Plus Plus(最大m字段和)
  5. Spring boot的Maven配置依赖
  6. CMM关键过程域剖析:需求管理
  7. [转]关于Apple TV(take 2)及 iPhone 更新的相关内容
  8. WinMerge只显示差异部分的设置方法
  9. [paper reading] DenseNet
  10. 完美实现Android ListView中的TextView的跑马灯效果
  11. Xcode中打印显示Unicode的解决办法
  12. Google Earth Engine(GEE)——图表概述(记载图表库)
  13. android 华为打开usb调试模式,华为H60-L01 开启USB调试模式
  14. 古文物青铜器VR高清模型H5三维可视化在线展示
  15. 2020年腾讯实习生C++面试题及答案持续更新中(4)
  16. 怎么选择自己合适的LED驱动IC?
  17. 开发电脑用 Windows 还是 Mac
  18. 第44章 MPU6050传感器—姿态检测—零死角玩转STM32-F429系列
  19. 超级实用——用word与谷歌翻译将英文PDF文档翻译成中文,免费无限制
  20. JavaScript实现flatten

热门文章

  1. Linux进程的管理与调度(七) -- Linux下2号进程的kthreadd
  2. 快速H.264编码算法的研究及实现
  3. LINUX CGROUP 概述
  4. 注册(三)之设置Contact地址的过期参数
  5. 漫谈Clustering:高斯混合模型(GMM)
  6. 八数码 详解(C++)
  7. 深度优先搜索 详解(C++)
  8. win10启动虚拟机电脑蓝屏----VMware
  9. html range样式修改,自定义(滑动条)input[type=range]样式
  10. php 监听redis,swoole如何监听redis数据