react-native 项目实战 -- 新闻客户端(3) -- 包装导航控制器
1.修改后的 Main.js
- /**
- * 主页面
- */
- import React, { Component } from 'react';
- import {
- StyleSheet,
- Text,
- View,
- Image,
- Platform, //判断当前运行的系统
- } from 'react-native';
- /*=============导入外部组件类==============*/
- import TabNavigator from 'react-native-tab-navigator';
- import CustomerComponents, { Navigator } from 'react-native-deprecated-custom-components';
- // 引入外部的组件(此处注意是相当于了项目根目录)
- var Home = require('../Component/Home');
- var Message = require('../Component/Message');
- var Find = require('../Component/Find');
- var Mine = require('../Component/Mine');
- // ES5
- var Main = React.createClass({
- // 初始化函数(变量是可以改变的,充当状态机的角色)
- getInitialState(){
- return{
- selectedTab:'home' // 默认选中的tabBar
- }
- },
- render() {
- return (
- <TabNavigator>
- {/*--首页--*/}
- {this.renderTabBarItem('首页','icon_tabbar_home','icon_tabbar_home_selected','home','首页',Home,1)}
- {/*--消息--*/}
- {this.renderTabBarItem('消息','icon_tabbar_message','icon_tabbar_message_selected','message','消息',Message,2)}
- {/*--发现--*/}
- {this.renderTabBarItem('发现','icon_tabbar_find','icon_tabbar_find_selected','find','发现',Find)}
- {/*--我的--*/}
- {this.renderTabBarItem('我的','icon_tabbar_mine','icon_tabbar_mine_selected','mine','我的',Mine)}
- </TabNavigator>
- );
- },
- // 封装tabBarItem
- renderTabBarItem(title,iconName,selectedIconName,selectedTab,componentName,component,badgeText){
- return(
- <TabNavigator.Item
- title={title}
- renderIcon={() => <Image source={{uri:iconName}} style={styles.iconStyle} />}
- renderSelectedIcon={() => <Image source={{uri:selectedIconName}} style={styles.iconStyle} />}
- selected={this.state.selectedTab === selectedTab}
- onPress={() => this.setState({ selectedTab: selectedTab })}
- selectedTitleStyle={styles.selectedTitleStyle} //tabBarItem选中的文字样式
- badgeText={badgeText}
- >
- <Navigator
- initialRoute={{name: componentName, component:component}}
- configureScene={()=>{
- return Navigator.SceneConfigs.PushFromRight;
- }}
- renderScene={(route, navigator) =>{
- let Component = route.component;
- return <Component {...route.passProps} navigator={navigator} />
- }}
- />
- </TabNavigator.Item>
- )
- }
- });
- const styles = StyleSheet.create({
- // icon默认样式
- iconStyle:{
- width: Platform.OS === 'ios' ? 30 : 25,
- height:Platform.OS === 'ios' ? 30 : 25,
- },
- // tabBarItem选中的文字样式
- selectedTitleStyle:{
- color: 'rgba(212,97,0,1)',
- }
- });
- // 输出
- module.exports = Main;
2.效果图
.
react-native 项目实战 -- 新闻客户端(3) -- 包装导航控制器的更多相关文章
- React Native 项目实战-Tamic
layout: post title: React Native 项目实战 date: 2016-10-18 15:02:29 +0800 comments: true categories: Rea ...
- 【腾讯Bugly干货分享】React Native项目实战总结
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e16a7640ad7b4682c64a7 “8小时内拼工作,8小时外拼成长 ...
- React Native 项目实战 -- DoubanProject
引言:本文是我研究react-native时写的一个简单的demo,代码里有详细的注释,好废话不多说,直接上代码. 1.项目目录 2.index.android.js /** * index.andr ...
- React Native项目实战
算是学习React Native的一次项目总结吧,目的还是提高自己. 包含的内容: 1>仿"美团"页面的实现; 2>封装项目中和自己常用的一些组件; 3>学习别人 ...
- react-native 项目实战 -- 新闻客户端(7) -- 新闻详情页
http://c.3g.163.com/nc/article/BUH64L0J00031H2L/full.html 观察这个地址,BUH64L0J00031H2L 就是每条新闻数据里的postid. ...
- react-native 项目实战 -- 新闻客户端(6) -- 完善ListView头部视图
1.因为需要定时器,所以我们要cd到当前项目根目录下安装这个类库: $ npm i react-timer-mixin --save 2.Component/ScrollImage.js /** * ...
- react-native 项目实战 -- 新闻客户端(4) -- 请求网络数据
1.Home.js /** * 首页 */ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Te ...
- react-native 项目实战 -- 新闻客户端(2) -- 完善TabBar
1.创建 drawable-xxhdpi 文件夹,保存 TabBar 的 icon图标 android -- app -- src -- main -- res -- drawab ...
- react-native 项目实战 -- 新闻客户端(1) -- 初始化项目结构
1.在项目根目录新建Componet文件夹(专门用来放我们的自定义组件),里面新建Main.js.Home.js.Message.js.Mine.js.Find.js 2.修改 index.andro ...
随机推荐
- 无法更新 EntitySet“W_ReceiveData”,因为它有一个 DefiningQuery,而 <ModificationFunctionMapping> 元素中没有支持当前操作的 <InsertFunction> 元素。
无法更新 EntitySet“W_ReceiveData”,因为它有一个 DefiningQuery,而 <ModificationFunctionMapping> 元素中没有支持当前操作 ...
- redis集群PHP解决方案
Redis3.2.4 Cluster集群搭建 服务器环境:192.168.3.229192.168.3.193每台服务器搭建3个节点,组成3个主节点,3个从节点的redis集群. 注意:防火墙一定要开 ...
- django返回响应对象
Django的视图必须要返回一个HttpResponse对象(或者其子类对象),不能像flask一样直接返回字符串. Django: return HttpResponse("Hello&q ...
- ppt提取图片,视频文件
1,将视频另存为htm格式,然后会生成文件夹,里面就有. 2,如果没法生成htm格式,可以生成odp格式,压缩文件,用解压缩软件查看odp文件,就能看到. 3,pptx直接修改后缀为rar或者zip, ...
- 牛客网 暑期ACM多校训练营(第二场)J.farm-STL(vector)+二维树状数组区间更新、单点查询 or 大暴力?
开心.jpg J.farm 先解释一下题意,题意就是一个n*m的矩形区域,每个点代表一个植物,然后不同的植物对应不同的适合的肥料k,如果植物被撒上不适合的肥料就会死掉.然后题目将每个点适合的肥料种类( ...
- HDU 6240 Server(2017 CCPC哈尔滨站 K题,01分数规划 + 树状数组优化DP)
题目链接 2017 CCPC Harbin Problem K 题意 给定若干物品,每个物品可以覆盖一个区间.现在要覆盖区间$[1, t]$. 求选出来的物品的$\frac{∑a_{i}}{∑b_ ...
- #422 Div2 D
#422 Div2 D 题意 假设有 n 个人比赛,每次比赛进行分组,每组人数必须相同,如果一组有 x 人,则那一组要比赛 $ \frac{x * (x - 1)}{2}$次,最终一人获胜,其它人淘汰 ...
- APP专项测试 | 内存及cpu
命令: adb shell dumpsys meminfo packagename 关注点: 1.Native/Dalvik 的 Heap 信息 具体在上面的第一行和第二行,它分别给出的是JNI层和 ...
- IE浏览器Cookie信息提取工具Galleta
IE浏览器Cookie信息提取工具Galleta 浏览器Cookie中保存着用户访问网站的各项敏感信息,如用户登录凭证.提取这些信息后,就可以以该用户的身份访问对应的网站.为了方便信息获取,Kal ...
- [POJ 2329] Nearest number-2
Link: POJ 2329 传送门 Solution: 比较明显的$dp$,但爆搜好像也能过 用多个方向$dp$来解决此题,最后汇总答案即可 一开始我写了4个,但后来发现只要相反的2个方向即可,同时 ...