react-native中flexbox布局总结

本文总结了React-Native中的Flexbox布局,对比了它与Android和iOS布局的区别。Flexbox提供了一种更强大、灵活的布局方式,能够方便地控制相邻控件的比例,并且比Android的LinearLayout和iOS的AutoLayout更易于调整。文中详细解释了flex属性在不同场景下的表现,以及如何根据flexDirection控制组件的宽高填充比率。
摘要由CSDN通过智能技术生成

最近看了react-native的 flexbox的布局,它的布局和安卓ios完全不同,但是可以实现一些效果,监于本人开发过ios和android应用,对布局有一定的了解,遂将flexbox与ios和android中的布局进行比较.

它们都可以控制控件收缩还是拉伸

android:match_parent,wrap_content

ios:     compress resistence priority, hugging priority

flex:    flex=0, flex=1

但是flex的布局功能比ios和android自带的布局方式都强大

1.flex可以方便的控制相邻控件的比例,这在android上可以通过linearlayout来做到,而在ios上不容易做到

2.flex的布局方式更灵活,android中一般会用到LinearLayout,FrameLayout,RelativeLayout,iOS的storyboard和xib中使用AutoLayout来控制控件的缩放关系,难以修改。而flex的布局像是android的LinearLayout内嵌RelativeLayout,比AutoLayout的方式修改灵活。


flex=0相当于android布局中的wrap_content和ios autolayout中的高content hugging priority

flex=1相当于android布局中的match_parent和ios autolyaout中的高content compression resistence priority

一个组件中只有一个flex值,那么flex的值是控制高度还是宽度的呢

这取决于它的父容器的flexDirection的值

当然,对于内

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native弹性布局是一种基于Flexbox布局模型的布局方式,它可以让你更轻松地创建具有弹性的用户界面。Flexbox是一种用于在屏幕上分配空间的CSS3布局模型,它可以将一个容器的子元素沿着一个主轴和交叉轴进行对齐和排列。在React Native,弹性布局可以让你使用一系列简单的布局属性来指定容器的子元素如何进行布局。 具体而言,React Native弹性布局有以下常用属性: - `flex`:定义一个元素的伸缩能力,默认值为0,即不伸缩。 - `flexDirection`:定义元素在容器的排列方向,可选值包括`row`(水平方向)、`column`(竖直方向)、`row-reverse`(反向水平方向)和`column-reverse`(反向竖直方向)。 - `justifyContent`:定义元素在主轴上的对齐方式,可选值包括`flex-start`、`center`、`flex-end`、`space-between`(两端对齐)和`space-around`(各个元素之间留有空隙)。 - `alignItems`:定义元素在交叉轴上的对齐方式,可选值包括`flex-start`、`center`、`flex-end`、`stretch`(默认值,拉伸元素以填充交叉轴)和`baseline`(让元素按照它们的基线对齐)。 下面是一个使用弹性布局实现水平居和竖直居的例子: ```javascript import React from 'react'; import { View, StyleSheet } from 'react-native'; const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', }, box: { width: 100, height: 100, backgroundColor: 'red', }, }); const App = () => { return ( <View style={styles.container}> <View style={styles.box} /> </View> ); }; export default App; ``` 这里的`container`使用了弹性布局,并且使用了`justifyContent`和`alignItems`来实现水平和竖直居
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值