2017-02-02 3 views
1

Я пытаюсь получить изображение внутри ScrollView, используя полную ширину экрана, сохраняя его соотношение сторон (я не хочу фиксированного фонового изображения). Ответы в https://github.com/facebook/react-native/issues/950, похоже, работают на представление, но не на ScrollView.Изображение полной ширины в ScrollView

Нулевая ширина/высота трюка просто заставляет изображение исчезнуть. Установка ширины с использованием Dimensions.get('window').width не работает по какой-либо причине; он оставляет некоторое пространство сверху или снизу или слева и справа от изображения в зависимости от его соотношения сторон.

Я не могу использовать Image.getSize(), так как изображение является локальным и скорее избежит жесткого кодирования размеров, поскольку у меня есть много других изображений, которые должны быть оформлены таким образом. Я пробовал много других комбинаций flex, alignSelf и т. Д., Но ни один из них не работает.

+1

Если вы знаете, что все изображения имеют одинаковое соотношение сторон, вы можете рассчитать его следующим образом: 'const imageHeight = imageWidth/aspectRatio;' или используя атрибут нового атрибута 0.40: https://github.com/facebook/react-native/commit/5850165795c54b8d5de7bef9f69f6fe6b1b4763d У меня была такая же проблема, но я использовал удаленные образы, поэтому мне удалось это сделать, используя 'getSize' и вычисляя размеры самостоятельно. Не удалось найти другое решение. – binchik

+0

Нет, они не все имеют одинаковое соотношение сторон, поэтому я сказал, что хочу избежать жесткого кодирования. –

+0

Компонент изображения не изменяет размер изображения на основе соотношения сторон изображения. Таким образом, вы должны получить размер изображения и сделать некоторые вычисления. Это не то же самое, что жестко кодировать размеры. Я думаю, вы можете использовать стиль aspectRatio для каждого компонента изображения. До RN 0.40 я построил свой собственный компонент, который мог бы изменять размеры внутри 'onLayout' на основе соотношения сторон изображения. Если стиль aspectRatio не работает или вы не можете использовать 0.40, я могу поделиться с вами своим кодом. –

ответ

0

Установка ScrollView's style={{width: "100%"}} работает для меня.

Смежные вопросы