私は実際のAndroidデバイスでReact Nativeを使用しています。 だけでメインのアプリのコンポーネントに機能をレンダリング以下で本当にシンプルなアプリ...私は私のデバイス上で次のような結果を得るイメージ 'contains' resizeModeは反応ネイティブでは機能しません
render() {
<Image
source={{uri:'http://resizing.flixster.com/DeLpPTAwX3O2LszOpeaMHjbzuAw=/53x77/dkpu1ddg7pbsk.cloudfront.net/movie/11/16/47/11164719_ori.jpg'}}
style={
{
flex: 1,
resizeMode: 'contain',
backgroundColor: 'yellow'
}
} />
}
作成する場合:あなたは全体の背景を見ることができるように
を黄色ですので、イメージ要素が実際に画面全体のサイズを占めていることがわかります。しかし、それは間違ってレンダリングされます。 'cover' resizeModeは期待どおりに動作します(「ストレッチ」モードも同様です)。 これは動作していない '包含'モードです(私の視点から見て最も重要なモードです)。 画像が表示されないので、画像をListViewに配置すると、さらに悪化します。
UPDATE 1 フレデリックは指摘しているように、「含有」は画像がコンテナのサイズよりも大きい場合にのみ機能します。では、アスペクト比を維持したまま、イメージ全体をコンテナサイズにするにはどうしたらいいですか? Reactのスタイルではまだパーセントはサポートされていません。イメージがロードされたら、イメージの幅と高さのプロパティを取得する方法はわかりません。 Imageコンポーネントに関連付けられたイベントは、その情報を提供しません。
更新2 いいニュースです。私は現在、React Native v0.24.1を使用しています。実際のイメージサイズがコンテナよりも小さい場合でも、イメージ 'contain'モードが期待通りに機能するようです。 zvonaの解決策は良いです(ただし、onLayoutは画像の表示サイズを指定しますが、実際の画像サイズは表示されません)。現時点では、実際のイメージサイズを調べる方法はわかりません(ネットワークリソースからイメージを取得しているとしましょう。サイズを知りません。計算したい場合は非常に重要です)アスペクト比)。
Damn!あなたはまったく正しい!私はそれを忘れてしまった。 Reactの問題は、幅と高さのスタイルプロパティでパーセンテージを使用することができないということです。だから、アスペクト比を維持しながら画像全体をコンテナサイズにする方法はわかりません。 – user3621841
"カバー"は何をする予定ですか? docs:_'cover 'から:画像の幅と高さの両方がビューの対応する寸法(パディングなし)になるように画像を一様に拡大/縮小(画像の縦横比を維持) ._ –