React Native FlexBox:为什么添加 alignItems 会阻止子项具有 100% 的宽度?
React Native FlexBox: Why does adding `alignItems` prevent child from having 100% width?
在我的 React Native 应用程序中,我有一个父 View
容器,一个包含 Text
元素的子 View
。默认情况下,子视图的宽度会拉伸以填充父视图。但是如果我添加 alignItems: 'center'
,子项会移动到中心,但它的宽度也会缩小到只适合它包含的文本的宽度。
这是点心。取消注释 alignItems: 'center'
以查看差异:https://snack.expo.io/@gkeenley/alignitems-example
有人知道为什么会这样吗?
child 没有明确的宽度,因此它的宽度通常刚好足以包围它包含的文本,这就是设置 alignItems
时您所看到的至 'center'
。您之前看到它占据整个宽度的原因是 alignItems
的默认值是 'stretch'
,这导致 child 的正常宽度无关紧要,而是被拉伸以占用全部 space.
如果您希望 child 在您居中的版本中更大一些,您可以给它一个明确的宽度:
child: {
height: '100%',
width: '50%',
backgroundColor: 'red'
}
...或使用填充在文本周围放置一些额外的分隔符。
child: {
height: '100%',
padding: 5,
backgroundColor: 'red'
}
在我的 React Native 应用程序中,我有一个父 View
容器,一个包含 Text
元素的子 View
。默认情况下,子视图的宽度会拉伸以填充父视图。但是如果我添加 alignItems: 'center'
,子项会移动到中心,但它的宽度也会缩小到只适合它包含的文本的宽度。
这是点心。取消注释 alignItems: 'center'
以查看差异:https://snack.expo.io/@gkeenley/alignitems-example
有人知道为什么会这样吗?
child 没有明确的宽度,因此它的宽度通常刚好足以包围它包含的文本,这就是设置 alignItems
时您所看到的至 'center'
。您之前看到它占据整个宽度的原因是 alignItems
的默认值是 'stretch'
,这导致 child 的正常宽度无关紧要,而是被拉伸以占用全部 space.
如果您希望 child 在您居中的版本中更大一些,您可以给它一个明确的宽度:
child: {
height: '100%',
width: '50%',
backgroundColor: 'red'
}
...或使用填充在文本周围放置一些额外的分隔符。
child: {
height: '100%',
padding: 5,
backgroundColor: 'red'
}