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

Posted

技术标签:

【中文标题】React Native - 图像将文本推出屏幕 - 用第三个视图修复?【英文标题】:React Native - image pushes text out screen - fixed with 3rd view? 【发布时间】:2017-12-18 10:44:54 【问题描述】:

我正在使用 React Native 版本 0.44.0 和 expo 应用程序在 ListView 的屏幕上呈现一些图像和文本。

我的问题在于样式。

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

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

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

在我添加 View3 并给它一个固定宽度之前,我无法让文本回到中心。

所以 View1 有 flex=1 , View2 有 flex=1 , View3 有

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

【问题讨论】:

【参考方案1】:

它会根据屏幕动态呈现固定宽度吗 分辨率与密度无关的像素单元?

不。它不会根据不同的屏幕尺寸进行调整。宽度会因屏幕而异。使用 flex-box 是获取东西的最佳方式 完成,但有时您需要屏幕宽度和屏幕高度的帮助。为此,您可以使用 react-native 中的 Dimensions。这是使用它的guide。还有一些库可以让应用程序响应,如react-native-responsive 和react-native-extended-stylesheet。

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

【讨论】:

以上是关于React Native - 图像将文本推出屏幕 - 用第三个视图修复?的主要内容,如果未能解决你的问题,请参考以下文章

React Native 入门基础

React Native / Expo - 将图像传递到预览屏幕

如何在 iOS 上的 React Native 中的 ImageBackground 上的父视图中显示文本元素?

react-native - 适合包含视图的图像,而不是整个屏幕大小

React Native应用程序不会将@ 1x,@ 2x或@ 3x图像加载到正确的屏幕密度

react native android背景图像不适合屏幕