react-native中flexbox布局总结

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近看了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的值

当然,对于内部元素来说

元素的默认属性值是flex:0,flexDirection:'column',alignItems:'stretch',justifyContent:'flex-start'

1.当父元素的flexDirection='column'时 

flex控制的是高度的填充比率,

组件的宽度由父容器的alignItems属性控制 

1)alignItems的值是stretch时 宽度为match_parent

2)当alignItems的值是auto,flex-start,flex-end,center时,宽度为wrap_content

2.当父元素的flexDirection='row'时

flex控制的是宽度的填充比率,

组件的高度由父容器的alignItems属性控制 

1)alignItems的值是stretch时 高度为match_parent

2)当alignItems的值是auto,flex-start,flex-end,center时,高度为wrap_content

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值