タイトル通り、React Native の View コンポーネントで作成した要素をグリッド表示させる方法についてです。
なお、今回は横2列で表示させています。
ライブラリもあるようでしたが、自前でも実装できるみたいだったので、参考サイトを元に実装しました。
実装にあたり、参考にさせていただいた記事はこちらから。
React NativeのFlatListでグリッド状に画像を配置する方法 – Qiita
https://qiita.com/harker/items/8ebb17ec568a6393bcb5
サンプルコードはこちら。
まず、必要な各種コンポーネントをインポートします。
また、styles も定義します。
import { ScrollView, FlatList, StyleSheet, Image, View, Text, Dimensions } from 'react-native';
const windowWidth = Dimensions.get('window').width;
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
},
listContainer: {
flexGrow: 1,
justifyContent: 'center'
},
card: {
backgroundColor: '#FFF',
width: windowWidth / 2 - 15,
margin: 5,
},
image: {
width: '100%',
height: 150,
},
});
そうしたら、render() の return 内に下記を追加します。
なお、state の list に表示させたいデータの配列が格納されています。
<ScrollView>
<View style={styles.container}>
<FlatList
data={this.state.list}
keyExtractor={item => `${item.id}`}
renderItem={({item, index}) => {
return (<View style={styles.card}>
<Text>{item.title}</Text>
<Image
style={styles.image}
resizeMode="cover"
source={{ uri: item.image }} />
</View>);
}}
numColumns={2}
contentContainerStyle={styles.listContainer} />
</View>
</ScrollView>
実装する項目は以上です!
あとはプロジェクトを実行すれば、要素が横2列で表示されます。
以上、React Native で View コンポーネントをグリッド表示する方法についてでした。
ご参考になれば幸いです。