次のイメージのようにグリッドレイアウトを実装するためのアイデア。
異なる高さのアイテムを持つグリッドレイアウト(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. React Native ScrollViewの高さ
- 3. 同じ高さを持つ異なる高さの.svg画像
- 4. 反応グリッドレイアウトのアイテムの高さ/幅をプログラムで変更する
- 5. 異なる高さのRecyclerViewアイテム
- 6. React Nativeの異なるコンポーネント間のSignleton
- 7. React Native - 異なるJSファイル間のsetState
- 8. React Native - FlatList上の高度な例
- 9. React NativeでFlatListの1つのアイテムを更新するには?
- 10. Relay対GraphuxとReact-Nativeを持つApollo
- 11. 異なるセルサイズのAndroidグリッドレイアウト
- 12. jQueryのソート可能(様々な高さを持つアイテムは)
- 13. 異なるサイズの画像を持つオブジェクトの高さ
- 14. 異なる高さのサイズを持つレイキャスティング
- 15. React Native:2つのスティッキーヘッダーを持つ2つのスクロールビュー
- 16. React Native ListView:アイテムの前に接頭辞
- 17. React-Nativeでキーボードの高さを取得するには?
- 18. GridLayoutManagerの異なる(動的な)アイテムの高さ
- 19. 異なる重力と高さを持つ1つのテキストビュー内の2つの異なるスタイル
- 20. React Native:セクションヘッダーと折りたたみ可能な展開可能なアイテムを持つListView
- 21. React Virtualized:同じ固定高さであるが幅が異なるセルを持つコレクション
- 22. React Native:2つの異なるファイル間で同じ名前の@providesModule宣言
- 23. React Native ListView:可変高さの特定の行へスクロール
- 24. 複数のアイテムの高さを持つRecyclerView
- 25. 異なる高さを持つ複数の固定されたnavbarのスムーススクロール
- 26. グリッドビューのアイテムが切り抜かれ、高さが異なる
- 27. 異なるアイテムの幅を持つRecyclerViewのLayoutManager
- 28. React Native ScrollView:上下の色が異なる
- 29. React-native-slider:Thumbの高さを40以上に設定できない(Android)
- 30. React Native for iOSの幅、高さ、パディングなどのデフォルト単位は何ですか?