在web移动端通常会有这样的需求,实现上中下三栏布局(上下导航栏位置固定,中间部分内容超出可滚动),如下图所示:

实现方法如下:

HTML结构:

<div class='container'><div class='header'></div><div class='content'></div><div class='footer'></div>
</div>

首先可以利用fixed或者absolute定位,实现简单。

现在介绍另外一种方法——利用-wekkit-box/flex,实现上下两栏固定高度,中间高度自适应的布局。

CSS代码如下:

使用-webkit-box:

.container{width: 100%;height: 100%;display: -webkit-box;-webkit-box-orient: vertical;
}
.header{height: 200px;background-color: red;
}
.content{-webkit-box-flex: 1;overflow: auto;
}
.footer{height: 200px;background-color: blue;
}

使用flex:

.container{width: 100%;height: 100%;display: flex;flex-direction: column;
}
.header{height: 200px;background-color: red;
}
.content{flex: 1;overflow: auto;
}
.footer{height: 200px;background-color: blue;
}

实际应用中应该将以上两种放在一起写,这里只是为了下文而将新旧两种写法分开。

在react native中,实现样式只是CSS中的一个小子集,其中就使用flex的布局

实现的思路和上面也是相同的,不过由于react native中对于View组件而言,overflow属性只有'visible'和'hidden'两个值( 默认是'hidden' ),并没有可滚动的属性,因此中间内容部分需要使用"ScrollView"滚动容器

组件渲染:

render(){return(<View style={styles.container}><View style={styles.header}></View><ScrollView style={styles.content}></ScrollView><View style={styles.footer}></View></View>
  );
}        

样式:

const styles = StyleSheet.create({container: {flex: 1,   flexDirection: 'column'},header: {height: 100,backgroundColor: 'red',},content: {flex: 1,},footer: {height: 100,backgroundColor: 'blue',}
});

效果:

react native最基础的布局就实现了。

由于react native中布局方法基本就这两种: flex和absolute布局,掌握了flex布局,也就基本搞定了。

转载于:https://www.cnblogs.com/zhenwen/p/5828035.html

从web移动端布局到react native布局相关推荐

  1. React Native布局详细指南

    本文出自<React Native学习笔记>系列文章. 一款好的APP离不了一个漂亮的布局,本文章将向大家分享React Native中的布局方式FlexBox.  在React Nati ...

  2. 什么是 Native、Web App、Hybrid、React Native和Weex?

    一句话概要 Native.Web App.Hybrid.React Native(后面以RN简称).Weex 间的异同点,后期同步小程序和PWA. App常用开发模式简介 此处App为应用,appli ...

  3. React Native布局

    一款好的APP离不了一个漂亮的布局,本文章将向大家分享React Native中的布局方式FlexBox.  在React Native中布局采用的是FleBox(弹性框)进行布局. FlexBox提 ...

  4. 什么是 Native、Web App、Hybrid、React Native 和 Weex?

    (点击上方公众号,可快速关注) 来源:zwwill_木羽 segmentfault.com/a/1190000011154120 一句话概要 Native.Web App.Hybrid.React N ...

  5. Web前端:什么是 React Native?

    ​ React Native 是一种 JavaScript 框架,可让开发人员构建强大且响应迅速的交互式应用程序.技术驱动型企业现在选择使用React -Native框架来构建超越现代移动应用程序. ...

  6. 适合做app的前端框架有哪些?webAPP移动端App:react native、weex、flutter

  7. React Native 学习资源精选仓库

    <React Native Awesome>这里fork过来的,汇集了各类react-native学习资料.工具.组件.开源App.资源下载.以及相关新闻等,只求精不求全.因后面无法 Pu ...

  8. React Native 学习资源精选仓库(汇聚知识,分享精华)

    React Native 学习资源精选仓库(汇聚知识,分享精华) <React Native Awesome>这里fork过来的,汇集了各类react-native学习资料.工具.组件.开 ...

  9. 2.React Native Flex布局介绍以及实践

    好久没有写博客,一直在用自己的印象笔记记录一些问题.2017年了,想重新的把博客写起来.也希望通过这个平台交一些朋友. 没有具体的介绍基本的语法,主要是说明了与标准的CSS Flex的一些区别以及一个 ...

最新文章

  1. 阿里云网盘内测_阿里云网盘内测,下载10M/s;百度网盘...?
  2. CF558E A Simple Task 线段树
  3. Spring boot 文件上传大小限制
  4. Loj #6287 诗歌
  5. 【哈佛商学院和斯坦福要求学生必看的20部电影】中/英字幕
  6. HashMap数据类型使用注意-不能使用基本数据类型
  7. 需求工程-软件需求模式读书笔记3
  8. Oracle 11g 11201_RHEL5.5_RAC_VBOX 详细搭建步骤
  9. 设计模式 原型模式_设计模式:原型
  10. 面试题:请介绍⼀下 JMM(Java 内存模型)
  11. cx_oracle主备服务器,怎么在Python中使用cx_Oracle模块对Oracle数据库进行操作
  12. Linux下进行源码安装时如何避免找不到那些使用--prefix指定目录安装的依赖
  13. Unity | 安卓 读取和写入TXT文本操作
  14. 数组按照字母顺序排序
  15. dgraph的使用总结--------docker安装使用
  16. 记一次oracle通过dblink连接mysql实施
  17. OpenPose环境搭建的经历
  18. PSTN与VoIP相关知识
  19. 抓取王者荣耀英雄列表的爬虫笔记(python+requests)
  20. 一些应该知道的电脑小技巧

热门文章

  1. 虚拟机中dns配置好了但是域名ping不同_弱电工程中常用的几个网络命令,学会后轻松变高手...
  2. python硬件交互_对Python的交互模式和直接运行.py文件的区别详解
  3. c语言学生成绩删除功能,c语言学生成绩管理系统程序设计,有添加,查找,删除,输出,修改,排序等功能!!!...
  4. ubuntu docker慢_基于docker搭建MulVAL攻击图
  5. python获取绝对路径_python 获取文件本身的绝对路径
  6. python findall函数_Ramp;Python Data Science系列:数据处理(11)Python正则表达式re模块(三)...
  7. c++获取数组长度_灵魂拷问:Java如何获取数组和字符串的长度?length还是length()?...
  8. 平行志愿计算机录取顺序,2020平行志愿的录取顺序你知道吗?
  9. python 测试mysql数据库_Python操作MySQL数据库----继续安装和测试
  10. 大数据平台建设方案_工信部:全国范围内逐步推进反诈大数据平台建设