首页 文章

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

提问于
浏览
0

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

我的问题是造型 .

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

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

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

在我添加 View3 并给它一个 fixed width 之前,我无法将文本放回中心 .

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

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

1 回答

  • 1

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

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

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

相关问题