2017-01-30 2 views
2

Я пытаюсь установить размеры изображения так, чтобы ширина всегда занимала всю ширину карты (за вычетом горизонтального поля) и с гибкой высотой, чтобы она могла масштабироваться по мере необходимости.Как я могу получить ширину изображения, чтобы заполнить карту, а высота - гибкой?

Как это сделать? Кажется, что стиль нуждается в высоте, он не примет значение null.

Я пробовал много комбинаций с использованием различных resizeModes, высоты, ширины и т.д.

Вот компонент:

enter image description here

А вот мой текущий код:

renderImage(image) { 
    const { width, height } = Dimensions.get('window'); 

    if (image) { 
     return (
     <View style={styles.imageContainer}> 
      <Image 
      style={{ width, resizeMode: 'contain', height: 300 }} 
      source={{ uri: image }} 
      /> 
     </View> 
    ); 
    } 
    } 

ответ

0

У меня была такая же проблема для изображений из Интернета (там, где не было точной ширины & высота была известна) и создана react-native-web-image. В настоящее время не для локальных изображений, только для удаленных. Попробуй, я буду рад, если это поможет.

+0

Я не могу этого сделать, я боюсь. Я использую exponent, который не поддерживает родные модули. – bloppit

+0

В этом случае я могу предложить использовать двухэтапную логику: fist 'Image.getSize' (https://facebook.github.io/react-native/docs/image.html#getsize) для извлечения исходных измерений, тогда вы можете вычислить все необходимые размеры для правильной масштабирования. – vovkasm

0

Установите ширину ширины экрана и установите высоту undefined.

+0

Стиль требует высоты, он не будет принимать нулевое или упущение. Если я это сделаю, изображение вообще не будет отображаться. – bloppit

+0

Каков стиль imageContainer? – yedidyak

+0

Только это: 'marginHorizontal: 10, marginBottom: 5,' – bloppit