博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用自定义组件添加顶部导航栏
阅读量:6793 次
发布时间:2019-06-26

本文共 2133 字,大约阅读时间需要 7 分钟。

源码

/* * @Author: YooHoeh  * @Date: 2018-07-11 21:25:31  * @Last Modified by: YooHoeh * @Last Modified time: 2018-07-12 08:37:32 */import React, { Component, PropTypes } from "react";import { View, Text, StyleSheet, Platform, StatusBar, } from "react-native";import { platform } from "os";const NAV_BAR_HEIGHT_ANDROID = 50;const NAV_BAR_HEIGHT_IOS = 44;// ios状态栏高度const STATUS_BAR_HEIGHT = 20;const statusBarShape={  backgroundColor:PropTypes.string,  barStyle:PropTypes.oneOf('default','light-content','dark-content'),  hidden:PropTypes.bool,}  export default class NavigationBar extends Component {
// 自定义组件并对其设置属性限定 static propTypes = { style: View.propTypes.style, title: PropTyoes.string, titleView: PropTypes.element, hide: PropTypes.bool, leftButton: PropTypes.element, rightButton: PropTypes.element, statusBar:PropTypes.shap(statusBarShape) }; // 组件默认设置 static defaultProps={ statusBar:{ barStyle:'light-content', hidden:false, } } // 构造函数,默认导航栏不隐藏 constructor(props) { super(props); this.state = { title: "", hide: false }; } render() { // 状态栏 let status =
; // 判断标题是字符串还是一个view组件 let titleView = this.props.titleView ? ( this.props.titleView ) : (
{
this.props.title}
); let content = (
{
this.props.leftButton}
{titleView}
{
this.props.rightButton}
); return
{status} {content}
; }}// 样式const styles = StyleSheet.create({ container: { backgroundColor: "grey" }, navBar: { justifyContent: "space-between", alignItem: "center", height: Platform.OS === "ios" ? NAV_BAR_HEIGHT_IOS : NAV_BAR_HEIGHT_ANDROID, flexDirection: "row" }, titleViewContainer: { justifyContent: "center", alignItem: "center", positon: "absolute", left: 40, right: 40, top: 0, bottom: 0 }, title: { fontSize: 20, color: "white" }, statusBar: { height: Platform.OS === "ios" ? STATUS_BAR_HEIGHT : 0 }});

转载于:https://www.cnblogs.com/YooHoeh/p/9300943.html

你可能感兴趣的文章
服务器时间同步
查看>>
Keepalived + nginx的安装部署
查看>>
SSH反向代理
查看>>
python数据类型-字符串
查看>>
IT运维之Linux服务器监控方案
查看>>
redis
查看>>
keytool生成证书
查看>>
lvs调度算法
查看>>
java中for循环冒号用法
查看>>
php常用函数总结
查看>>
QEMU-KVM虚机动态迁移原理
查看>>
我的友情链接
查看>>
从码云上clone项目到本地不能纳入管理问题
查看>>
Linux 目录结构详解
查看>>
大家都用得起的液冷服务器
查看>>
linux下物理内存和虚拟内存交换机制
查看>>
经典Oracle教程
查看>>
转(一万小时定律的文章): const 与 readonly区别...
查看>>
10种JavaScript特效实例让你的网站更吸引人
查看>>
LOGO有哪几种常规设计思路?
查看>>