React Native - 图像将文本推出屏幕 - 用第3个视图修复?

时间:2017-07-13 14:51:31

标签: javascript react-native flexbox

我正在使用React Native Version 0.44.0和expo app在ListView中在屏幕上呈现一些图像和文本。

我的问题在于造型。

A。最初我在View1中只有一个View( View1 )和一个图像和一个文本组件。我设置了 flexDirection =“row” justifyContent =“center”,并将图片和文字置于屏幕中心。

B。我需要在第一个文本下插入另一个具有不同样式的文本组件,但 flexDirection =“row”根本不允许它在它

我插入了 View2 ,这确实允许文本垂直定位但是较高的文本在屏幕的右边缘被切断了(我相信它是因为图像设置为固定高度和宽度)。

在我添加 View3 并给它固定宽度之前,我无法将文字重新放回中心。

所以View1的flex = 1,View2的flex = 1,View3的宽度=“someValue”

我关注:现在它在设备上呈现完美。但这是可接受的做法吗?它会在其他设备上失真还是会根据屏幕分辨率动态渲染固定宽度,因为它的密度无关像素单元?

1 个答案:

答案 0 :(得分:1)

  

它会根据屏幕动态渲染固定宽度   分辨率,因为它的密度无关像素单位?

不。它不会根据不同的屏幕尺寸进行调整。宽度将随屏幕而变化。使用flex-box是获取内容的最佳方式 完成,但有时您需要屏幕宽度和屏幕高度的帮助。为此,您可以使用react-native中的Dimensions。这是guide使用它。此外,还有一些库可以使应用响应如react-native-responsivereact-native-extended-stylesheet

在您的特定情况下,您可以将行视图(view1)与具有所需flex的2个内部视图分开。第一个内部视图可以保持图像视图,如果您发现图像高度和宽度与父项高度和宽度有困难,您可能还需要参考图像resizemod。第二个内部视图保存您的文本。还要记住向view1添加一些填充,以便内部视图始终位于视图端口中,并且Nevers将从视口中移出。