【发布时间】:2018-11-22 22:07:33
【问题描述】:
我正在尝试在 React Native 中从项目列表中进行两列布局。它似乎只在我定义项目的宽度时才起作用,我只想定义父宽度的百分比(0.5 将构成 2 列布局,但 0.25 将构成 4 列布局)。这个可以吗?
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,
}
});
你可以在这里玩:https://snack.expo.io/SyBjQuRxm
等效的 Css 工作:https://codepen.io/klamping/pen/WvvgBX?editors=110
显然我可以为每一列创建一个容器,但这不是重点:
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>
);
}
【问题讨论】:
-
您介意更新这些链接吗?他们不再工作了,谢谢!
标签: react-native flexbox