次のイメージのようにグリッドレイアウトを実装するためのアイデア。
異なる高さのアイテムを持つグリッドレイアウト(React Native)
1
A
答えて
1
答えは、表示するデータによって異なります。私はこれがスクロールダウンでより多くのアイテムをロードする無限のリストだと思います。その場合は、あなたがマークアップは次のようになりますScrollView
内3つのListView
-sを配置する必要があります。
<View style={styles.wrapper}>
<ScrollView contentContainerStyle={styles.container}>
<ListView
contentContainerStyle={styles.list}
dataSource={this.state.dataSourceColumn1}
/>
<ListView
contentContainerStyle={styles.list}
dataSource={this.state.dataSourceColumn2}
/>
<ListView
contentContainerStyle={styles.list}
dataSource={this.state.dataSourceColumn3}
/>
</ScrollView>
</View>
ラッパーView
あなたが合うようにブロックを伸ばすのに役立ちます全域。ビューのスタイリングポイントからは、フレキシボックスでタスクを解決することができます
wrapper: {
flex: 1
},
container: {
flexDirection: 'row',
paddingHorizontal: 5
},
list: {
flex: 1,
flexDirection: 'column',
paddingVertical: 10,
paddingHorizontal: 5
}
トリックは、私たちがコンテナ内の行としてすべての列を扱うということです。一定の間隔を確保するために、パディングとalignItems
スタイリングで遊んでください。
今、難しい部分はdataSource
を適切に処理することです。考え方は、コンポーネントの状態で3 dataSource
-sを持つことです。この方法でデータを取得したときは、手動で上書きして3つのソースに分割する必要があります。
ListView
に付属の便利なonEndReached
はここでは使用できないため、新しいフェッチがいつ必要なのかを知るために、ScrollView
の最後に到達するユーザーを捕まえなければなりません。しかし、それは私が他の場所ですでに答えられていると信じている別の質問です。
グリッドが有限で、より多くのアイテムを投げる必要がない場合は、より簡単です。上記の方法でデータを分割して、ListView
-sの代わりに3 View
-sをネストしたアイテムと使用します。その背後には、ListView
にはrowHasChanged
の条件を設定する方法があり、変更されていないリスト項目をレンダリングしないことでパフォーマンスが向上します。リストが有限であれば、それは本当に必要ありません。
関連する問題
- 1. MaterializeCSS - 高さの異なるグリッドレイアウト
- 2. 反応グリッドレイアウトのアイテムの高さ/幅をプログラムで変更する
- 3. 同じ高さを持つ異なる高さの.svg画像
- 4. 異なる高さのRecyclerViewアイテム
- 5. React Native ListView:アイテムの前に接頭辞
- 6. React Native:2つのスティッキーヘッダーを持つ2つのスクロールビュー
- 7. 異なるセルサイズのAndroidグリッドレイアウト
- 8. 異なるサイズの画像を持つオブジェクトの高さ
- 9. jQueryのソート可能(様々な高さを持つアイテムは)
- 10. React Native:セクションヘッダーと折りたたみ可能な展開可能なアイテムを持つListView
- 11. React Native:2つの異なるファイル間で同じ名前の@providesModule宣言
- 12. GridLayoutManagerの異なる(動的な)アイテムの高さ
- 13. React Native ListView:可変高さの特定の行へスクロール
- 14. 異なる重力と高さを持つ1つのテキストビュー内の2つの異なるスタイル
- 15. React Virtualized:同じ固定高さであるが幅が異なるセルを持つコレクション
- 16. React/React Nativeグローバルスコープ
- 17. React Native ScrollView:上下の色が異なる
- 18. React-Native-Meteorの更新React-Native 0.33
- 19. React-native-slider:Thumbの高さを40以上に設定できない(Android)
- 20. React Native for iOSの幅、高さ、パディングなどのデフォルト単位は何ですか?
- 21. コールバックを持つ構造体をReact Nativeからネイティブビューに渡す
- 22. React Native - Navigatorが異なるメソッド間で矛盾します
- 23. React Nativeに認識されないフォントファミリ
- 24. React - 無限スクロール - 動的高さを持つ子要素
- 25. React Native React Native TabBarIOSのスタイルをカスタマイズする
- 26. React Nativeのクロスプラットフォーム
- 27. React Nativeのオブジェクト
- 28. React NativeでURIから画像の高さと幅を取得するには?
- 29. React Native + react-native-oauthでFirebase Authを実装する
- 30. react-native-router-fluxでreact-native-side-menuを使用するには?