Quantcast
Channel: Active questions tagged flexbox - Stack Overflow
Viewing all articles
Browse latest Browse all 1675

2 column layout with flexBox on React Native

$
0
0

I'm trying to do a two column layout in React Native from a list of items. It only seems to work if I define the width of the items, I would like to define just a percentage of the parent width (0.5 would make a 2 column layout, but 0.25 would make a 4 column one). Can this be done?

export default class App extends Component {  render() {    return (<View style={[styles.container, {width:width}]}><View style={styles.item}><Text>{'item1'}</Text></View><View style={styles.item}><Text>{'item2'}</Text></View><View style={styles.item}><Text>{'item3'}</Text></View><View style={styles.item}><Text>{'item4'}</Text></View><View style={styles.item}><Text>{'item4'}</Text></View><View style={styles.item}><Text>{'item5'}</Text></View></View>    );  }}const styles = StyleSheet.create({  container: {    flex: 1,    flexDirection: 'row',    flexWrap: 'wrap',  },  item :{    flex: 0.5, //why this doesnt work???    // width: 150, //using fixed item width instead of flex: 0.5 works    height: 100,    padding: 10,    backgroundColor: 'red',    // flexGrow: 1,    // flexShrink: 0,  }});

You can play with it here: https://snack.expo.io/SyBjQuRxm

Css working equivalent: https://codepen.io/klamping/pen/WvvgBX?editors=110

Obviously I could do something like creating a container for each column, but that's not the point:

render() {    return (<View style={[styles.container, {width:width}]}><View style={styles.column1}><View style={styles.item}><Text>{'item1'}</Text></View><View style={styles.item}><Text>{'item2'}</Text></View><View style={styles.item}><Text>{'item3'}</Text></View></View><View style={styles.column2}><View style={styles.item}><Text>{'item4'}</Text></View><View style={styles.item}><Text>{'item4'}</Text></View><View style={styles.item}><Text>{'item5'}</Text></View></View></View>    );  }

Viewing all articles
Browse latest Browse all 1675

Trending Articles