NativeScript 中 CSS 的 flex 布局为什么在 Android 上不生效?
我在 NativeScript 里用 CSS 写了个简单的 flex 布局,iOS 上显示正常,但在 Android 上完全没按预期排列,子元素堆在一起了。是不是 Android 对 flex 支持有问题?还是我写法不对?
这是我的样式代码:
.container {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
width: 100%;
padding: 20;
}
在 NativeScript 里,你得用
FlexboxLayout才能让 flex 属性生效,光写display: flex在 Android 上是行不通的。改成这样:XML 部分:
CSS 部分你原来的写法没问题,但建议把 padding 加上单位:
另外检查一下你的 NativeScript 版本,老版本(6.x 之前)的 flex 支持确实有坑,如果是旧项目的话升级一下通常能解决。
如果你用的是
StackLayout或GridLayout,flex 属性是完全不认的,必须换成FlexboxLayout。iOS 那边的表现比较宽容,Android 这边比较严格。妈的又是平台差异,老子当年也在这栽过跟头。