【问题标题】:React Native - Justify Content not WorkingReact Native - 证明内容不起作用
【发布时间】:2021-08-31 17:46:22
【问题描述】:

我在我的 react-native 应用程序中一直在努力解决这个问题,所以我在代码和框中设置了一个非常简单的示例,您可以在此处查看:

https://codesandbox.io/s/elastic-star-5754q?file=/src/App.js

在具有绿色背景的视图中,由于“alignItems:center”样式属性,所有内部视图都在各自的空间内水平居中,正如我所期望的那样。我希望我也可以通过设置“justifyContent:center”将它们垂直居中,但这似乎对我不起作用。

我是不是从根本上误解了什么?

【问题讨论】:

    标签: reactjs react-native flexbox


    【解决方案1】:

    问题是您没有在各个视图中对齐文本。 您的示例错误地将内部 View 元素对齐到较大的 View 元素中,而不是对齐文本。

    要在他们的视图中垂直居中对齐文本,您只需justifyContent: "center" 添加到这三个单独的绿色视图中。

    这是一个例子:https://codesandbox.io/s/recursing-kirch-n8one?file=/src/App.js:393-417

    要进一步解释您遇到问题的原因,请查看此屏幕截图,其中的框概述了元素在屏幕上占用的空间:

    您可以看到内部 Views 仅占用内部 text 元素所需的宽度,但使用了它们可用的最大高度。

    【讨论】:

    • 我明白了,这很有意义,谢谢。但它给我留下了一个问题,为什么我放置在同一级别的“alignItems”工作得很好?那也不应该影响嵌套文本吗?
    • 好问题!请参阅我刚刚在上面添加的屏幕截图以及个人divs 的轮廓。希望这可以帮助您了解布局的情况。一般来说,请记住水平空间和垂直空间的处理方式非常不同。
    • 啊,现在我明白了。由于包含文本的视图占据了整个垂直空间,因此垂直居中该视图绝对没有任何作用。很有帮助,谢谢!
    猜你喜欢
    • 2016-07-14
    • 2021-10-18
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多