我正在使用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”
我关注:现在它在设备上呈现完美。但这是可接受的做法吗?它会在其他设备上失真还是会根据屏幕分辨率动态渲染固定宽度,因为它的密度无关像素单元?
答案 0 :(得分:1)
它会根据屏幕动态渲染固定宽度 分辨率,因为它的密度无关像素单位?
不。它不会根据不同的屏幕尺寸进行调整。宽度将随屏幕而变化。使用flex-box是获取内容的最佳方式
完成,但有时您需要屏幕宽度和屏幕高度的帮助。为此,您可以使用react-native中的Dimensions
。这是guide使用它。此外,还有一些库可以使应用响应如react-native-responsive和react-native-extended-stylesheet。
在您的特定情况下,您可以将行视图(view1)与具有所需flex的2个内部视图分开。第一个内部视图可以保持图像视图,如果您发现图像高度和宽度与父项高度和宽度有困难,您可能还需要参考图像resizemod
。第二个内部视图保存您的文本。还要记住向view1添加一些填充,以便内部视图始终位于视图端口中,并且Nevers将从视口中移出。