这个项目是一个简单的底部导航切换页面
项目的地址为:https://github.com/Bstmy/bstmy-blend-app
先看效果

点击首页是首页面,点击个人中心是个人中心页面
先看代码

//index.js
//引用的是根app.js
import {AppRegistry} from 'react-native';
import App from './app/App';
import {name as appName} from './app.json';
AppRegistry.registerComponent(appName, () => App);
//app/App.js
//这个里面不仅有防止闪屏的,还有倒计时为3的启动页,还有定义了首页
import React, { Component } from 'react';
//闪屏
import SplashScreen from 'react-native-splash-screen';
//导航
import {createAppContainer, createStackNavigator} from 'react-navigation';//显示首页
import Home from "./Home";
//这个是很好看的启动页很美腻
import GuideView from "./guide/GuideView";
const RootStack = createStackNavigator({homes: Home,guideView: GuideView},{initialRouteName: 'guideView'   ,defaultNavigationOptions: {headerStyle: {backgroundColor: '#f4511e',height:0,},headerTintColor: '#fff',headerTitleStyle: {fontWeight: 'bold',},},}
);
const AppContainer = createAppContainer(RootStack);
//定义首页
//渲染AppConta
export default class App extends Component {constructor(props) {super(props);SplashScreen.hide(); // 关闭启动屏幕}render() {return (<AppContainer />);}}
//app/guide/GuideView.js
//配置的启动页
import React, {Component} from 'react';
import {Image,StyleSheet,View,Text
} from 'react-native';
import Swiper from 'react-native-swiper';
import AutoSize from '../utils/AutoSize';
class GuideView extends Component {constructor() {super();this.state = { invertedTime: 5 };}componentDidMount() {this.timer1=setInterval(() => {this.setState(previousState => {return {invertedTime: (previousState.invertedTime-1)};})console.log("启动倒计时"+this.state.invertedTime );if(this.state.invertedTime == 0){this.openHomePage();clearInterval(this.timer1)}} ,1000);}openHomePage(){this.props.navigation.navigate('homes');}//卸载计时器componentWillUnmount() {this.timer1 && clearInterval(this.timer1);}render() {return (<View style={styles.container}><Text style={styles.next} onPress={this.openHomePage.bind(this)}>{this.state.invertedTime}</Text><Swiper style={styles.wrapper}showsButtons={false}       //为false时不显示控制按钮paginationStyle={{      //小圆点位置bottom: 30}}loop={true}        //如果设置为false,那么滑动到最后一张时,再次滑动将不会滑到第一张图片。autoplay={true}          //自动轮播autoplayTimeout={3}      //每隔3秒切换><Image style={styles.image} source={require('../img/guide/geoude2.jpg')}/><Image style={styles.image} source={require('../img/guide/geoude3.jpg')}/><Image style={styles.image} source={require('../img/guide/geoude1.jpg')}/></Swiper></View>);}
};let styles = StyleSheet.create({container: {flex: 1,//必写flexDirection: 'column',},image: {width:AutoSize.size.width,//等于width:widthheight:AutoSize.size.height,},next:{width: 30,height: 30,borderRadius:15,fontSize:15,textAlign:"center",textAlignVertical: 'center',backgroundColor: "#D4237A",zIndex:1,position: 'absolute',color:"#fff",right: 20,top: 20,}
});export default GuideView;
//app/utils/AutoSize.js
//这个里面进行的就是屏幕适配
import React from 'react';
import Dimensions from 'Dimensions';const AutoSize = {size: {width: Dimensions.get('window').width,height: Dimensions.get('window').height},
};export default AutoSize;
//app/route/RootStack.js
//定义的是首页
import { createStackNavigator } from 'react-navigation';
import Home from '../Home'
import GuideView from '../guide/GuideView'
export const RootStack = createStackNavigator({home: Home,guideView: GuideView,},{initialRouteName: 'guideView',defaultNavigationOptions: {headerStyle: {backgroundColor: '#f4511e',},headerTintColor: '#fff',headerTitleStyle: {fontWeight: 'bold',},},}
);
//和index页面类似,不过具体怎么控制的?
//app/pages/User.js
import React, { Component } from 'react';import {View,Text
} from 'react-native';class User extends Component {render() {return (<View><Text>我是用户</Text></View>);}
}export default User;

上面有一点点的不理解
不知道是什么控制的切换的页面的,因为那个是同时引用的
不过这个项目我喜欢~~哭唧唧,在这个水平这里~~

转载于:https://www.cnblogs.com/smart-girl/p/10882254.html

【水滴石穿】bstmy-blend-app相关推荐

  1. 尝试HTML + JavaScript 编写Windows App

    一直以来博文中使用最多的就是C# + XAML.进入Windows App时代,又多了一对 Javascript + HTML组合,这对于Web开发的程序员来说再熟悉不过了.其实小编也做过几年的Web ...

  2. 博客园客户端UAP开发随笔 -- App连接云端内容的桥梁:WebView

    当你辛苦的从网上爬下来一篇文章之后,怎么在你的应用内展示这些包含HTML标记的文章?如果你使用的是Javascript开发应用,恭喜你,直接塞进页面就可以了,同时说明你很熟悉页面开发,而现在windo ...

  3. Expression Blend实例中文教程(12) - 样式和模板快速入门Style,Template

    在上一篇,介绍了Visual State Manager视觉状态管理器,其中涉及到控件的样式(Style)和模板(Template),本篇将详细介绍样式(Style)和模板(Template)在Sil ...

  4. Windows Phone 7 不温不火学习之《Expression Blend 创建渐变效果和创建Storyboard动画》...

    说起Expression Blend ,开发过Silverlight 或者WPF的同学肯定会暗爽一把.微软把这一神器免费提供给我们开发者使用,特别是自从WP7 发布就立刻免费,可以看出微软对WP7的重 ...

  5. Blend for Visual Studio 概述

    Blend for Visual Studio 可用于设计基于 XAML 的 Windows 和 Web 应用程序.它提供 了与 Visual studio 相同的基本 XAML 设计体验,并添加了可 ...

  6. Android app性能优化解决卡慢顿之布局优化

    前面博客分析了导致app卡顿慢的直接原因,这里就从原因出发,分析一些优化方案(这里主要是从直接影响渲染机制的布局相关进行分析) 1) Invalidations, Layouts, and Perfo ...

  7. 从零开始开发Android相机app(三)简单介绍图像滤镜功能

    目前章节 1.从零开始安卓端相机功能开发(一)了解用什么去开发以及流程 2.从零开始安卓端相机功能开发(二)让我们来开发一个相机 3.从零开始开发Android相机app(三)简单介绍图像滤镜功能 文 ...

  8. App.xaml MainWindow.xaml

    WPF程序结构 在Visual Studio中创建WPF应用程序,项目包括App和MainWindow两组文件.每组文件包括Xaml文件和cs文件,其中App.xaml文件的内容如下. [html] ...

  9. 基于 React Native 的 58 同城 App 开发实践

    作者简介: 彭飞,58 同城 iOS 客户端架构师.专注于新技术的研发,主要负责 App 端组件化架构以及性能优化,并已推广 React Native 在 58 同城 App 中业务场景的应用.在 M ...

  10. 【Android App】实战项目之仿微信的私信和群聊App(附源码)

    手机最开始用于通话,后来增加了短信功能,初步满足了人与人之间的沟通需求.然而短信只能发文字,于是出现了能够发图片的彩信,但不管短信还是彩信,资费都太贵了,令人惜墨如金. 后来移动公司推出飞信,它支持从 ...

最新文章

  1. 上班族漫画(转收藏)
  2. php route取值,route命令详解
  3. 802.11ac/ax (wifi6)中的Beamforming技术介绍
  4. ios开发-系统架构
  5. threeten-extra使用实例
  6. MyEclipse使用总结——设置MyEclipse开发项目时使用的JDK
  7. 这些东西,你知道吗?是否忘记了
  8. cookie和session的区别和用法
  9. nginx配置文件中参数的作用
  10. 根据特殊EOF的序列判断比赛输赢(洛谷P1042题题解,Java语言描述)
  11. windows 编写的脚本 无法在linux下运行
  12. ssh 登录时,有的服务器很容易频繁断开连接,有的却几乎不会断开。
  13. Github开源之旅启程:GitHub 上部署网页
  14. RTOS原理与实现02:基本任务切换实现
  15. 算法 判断多个点是否在同一圆周线上_广州灵活计费自动出盘机技术方案大盘点...
  16. GlusterFS卷的种类
  17. GJB9001-2017质量管理体系
  18. python读取grd数据_python批处理系列代码-GRD转TIF
  19. 聊聊各种“上门”能不能做起来
  20. 高德运维基于阿里云的最佳实践

热门文章

  1. Hello Qt(三十九)——SAX方式解析XML
  2. MySQL实现update select语句
  3. 最新ChatGPT GPT-4 NLU应用之实体分类识别与模型微调(附ipynb与python源码及视频)——开源DataWhale发布入门ChatGPT技术新手从0到1必备使用指南手册(六)
  4. 对于jsonp的理解
  5. Jenkins配置任务
  6. eclipse项目target文件拒绝访问:mvn install war打包失败
  7. vue-router重定向redirect
  8. 地平线,已经不把Mobileye当竞争对手了
  9. 使用OnBeforeUnload JavaScript事件
  10. 『phphot』【SD2.0大会】SD2.0讲师郭安定:编程无所不在