在过去几周使用iOS本地反应之后,我似乎遇到了一些flex样式的缺点......特别是在涉及“响应”行为时 .
例如,假设您要创建一个包含卡片的视图(这些卡片的元数据来自API) . 您希望卡片的视图宽度的50%减去边距和填充,并在每个2之后换行 .
我对此视图的当前实现将返回的数组拆分为包含2个项的行 . 列表容器有 flex: 1, flexDirection: 'column
,行有 flex: 1
,然后每张卡都有 flex: 1
. 最终结果是每行有2列,均匀占据视图宽度的一半 .
看起来在React Native样式中没有简单的方法可以做到这一点,而不使用javascript对数据进行某种预处理,以便正确地进行样式设置 . 有没有人有什么建议?
3 回答
React Native已经has percentage support:
使用flexbox可能有更好的方法来实现这一点,但我通常为视口宽度和视口高度定义"percentage" helpers
vw
和vh
,以CSS视口大小测量单位命名:要在网格中流动项目,您可以计算项目的适当大小,计算边距和视口大小:
如果您有已知且数量有限的项目,则应该只使用此技术 - 对于任意数量的卡片,出于性能原因应使用
ListView
,并手动将数据集拆分为行 .你可以使用justifyContent:'space-between'
screenshot