我正在努力学习使用react-native,有些甚至非常简单的任务似乎非常复杂 . 例如,将图像均匀地缩放到屏幕宽度的给定百分比(或者更确切地说,可以是父节点的宽度) . 我无法找到一种简单的方法,可以在所有情况下使用 .

如果我正在创建一个带有flexDirection的视图:'row',我发现我可以添加一个缩放到的图像,例如 . 通过使用样式{width:'15%',resizeMode:'contains',aspectRatio:1},View的宽度的15% .

但是,如果我将图像添加到带有flexDirection的视图:'column',则上述操作无效(实质上,宽度样式无效) . 我无法想出任何其他方法,而不是添加具有flexDirection的子视图:'row',并包含具有这些样式的图像 . 这似乎是一种非常人为的做法,我可能会遗漏一些东西 . 人们会认为组件应该有某种“规模”属性,但我找不到任何这样的东西 .

现在我遇到的实际问题是,现在我需要在这样的图像上叠加一些文本 . 图像不能再包含子节点,推荐的方法是使用ImageBackground .

问题是ImageBackground在这种情况下的行为不像Image . 如果我使用与上面相同的样式,它会做一些奇怪的事情:它似乎创建了一个具有正确宽度的视图,例如 . 15%或父母的宽度,然后从左侧和右侧裁剪图像本身,以便只留下15%的中心列(并在此视图中左对齐) . 所以它有两次缩小到15%:一次创建视图,另一次将图像从侧面裁剪到另外15% . (正是这样做的事实可以通过尝试不同的百分比得到证实 . )

对于几乎任何图形引擎中只有几个单行的东西来说,所有这一切看起来都非常复杂和设计 . 这应该怎么做?

所有教程和人们问题的答案只谈到将图像缩放到某个定义的点大小(如150x150),而不是屏幕宽度或高度的百分比(鉴于屏幕尺寸和分辨率可能会有所不同,这将更有用)很多) .