【问题标题】:Full-width Image in a ScrollViewScrollView 中的全角图像
【发布时间】:2017-07-16 11:16:48
【问题描述】:

我试图让 ScrollView 中的图像占据屏幕的整个宽度,同时保持其纵横比(我不想要固定的背景图像)。 https://github.com/facebook/react-native/issues/950 中的答案似乎适用于 View 但不适用于 ScrollView。

空宽度/高度技巧只会使图像消失。由于某种原因,使用Dimensions.get('window').width 设置宽度不起作用;根据图像的纵横比,它会在图像的顶部和底部或左侧和右侧留下一些空间。

我不能使用Image.getSize(),因为图像是本地图像,我宁愿避免对尺寸进行硬编码,因为我有许多其他图像需要以这种方式设置样式。我尝试了许多其他flexalignSelf 等的组合,但似乎都没有。

【问题讨论】:

  • 如果您知道所有图像具有相同的纵横比,您可以通过以下方式计算:const imageHeight = imageWidth / aspectRatio; 或使用 0.40 新样式属性:github.com/facebook/react-native/commit/… 我遇到了同样的问题,但我是使用远程图像,所以我设法使用getSize 并自己计算尺寸。找不到任何其他解决方案。
  • 不,它们的纵横比并不相同,这就是为什么我说我想避免硬编码。
  • 图像组件不会根据图像纵横比调整自身大小。因此,您必须获取图像大小并进行一些计算。这与对尺寸进行硬编码不同。我猜你可以在每个图像组件上使用 aspectRatio 样式。在 RN 0.40 之前,我构建了自己的组件,可以根据图像纵横比在 onLayout 内调整自身大小。如果 aspectRatio 样式不起作用,或者您不能使用 0.40,我可以与您分享我的代码。
  • 所以无论使用哪种方法,我都必须事先计算所有纵横比?

标签: react-native


【解决方案1】:

设置 ScrollView 的 style={{width: "100%"}} 对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 2014-10-02
    • 1970-01-01
    • 2016-04-21
    • 2016-12-22
    • 2018-02-09
    • 1970-01-01
    相关资源
    最近更新 更多