react-native中的flex和flexGrow异同点

本文探讨了在react-native中flex和flexGrow的异同。虽然flex通常是flexGrow、flexShrink和flexBasis的简写,但在React-native中,当flex只有一个值时,它并不完全等同于flexGrow。当父元素空间充足,两者都能分配空间;但空间不足时,flex会限制子元素大小,而flexGrow仍保持元素原有大小。这一行为源于flex在React-native中的实现细节:当flex值为整数时,实际相当于`flex: X, 1, 0`。" 116024430,10883542,使用Glide在Android中加载网络图片,"['Android开发', 'Java', 'Android Studio', '图片库']

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

react-native中的flex和flexGrow是否表现一致?

在翻看react-native中关于flexBox的文档(文档1文档2)时,了解到flex这个属性是flexGrow、flexShrink和flexBasis三个属性的缩写,而在React-native中flex只接收一个值,这个值代表的是flexGrow的对应值,至此,我之前一直以为这样的话,在React-native中flex的作用就可以完全等价于flexGrow了,然鹅……在官网给的小例子中做实验练手时,发现……

当父元素剩余空间充足时,flexGrow和flex都会使对应子元素对父元素的剩余空间进行划分




当父元素剩余空间不足时,flex即使设置了值,子元素的大小依然被限定在父元素空间内;而flexGrow会使子元素超越父元素的空间而维持子元素的本来大小。




总的来说,flex只有一个值时并不等同于flexGrow,flex会使子元素的空间大小限定在父元素空间范围内,而flexGrow会使子元素起码维持其本身大小,再根据父元素是否有剩余空间进行空间分配。

为什么会这样?

以上结论终归是总结,并没找到官方的解释,于是乎,翻文档,从facebook的react-native官网文档找到了yoga文档,再翻到了W3的官方文档,终于找到了,看到没……看到没?没看到接着往下翻,你会看到的。

flex只有一个值,且值为整数时,等价于 flex:X, 1, 0  !!这才是最终答案,是根本原因啊,/(ㄒoㄒ)/~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值