最近看了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的值
当然,对于内