我想呈现7个按钮在一行具有相同的宽度,以填补所有可用的空间水平。
render() {
return (
<FlatList
data={this.state.days}
renderItem={({ item }) => <View style={styles.button}><Button title={item.getDate().toString()} /></View>}
keyExtractor={item => item.getDate().toString()}
horizontal={true}
style={styles.list}
/>
);
}
const styles = StyleSheet.create({
list: {
display: 'flex'
},
button: {
flex: 1
}
});
字符串
它们在一个平面列表中, Package 在一个视图中,因为我不能直接对按钮进行样式化。
这是我在React Native中得到的:
的数据
也许有一些我不熟悉的平淡行为?
6条答案
按热度按时间uqdfh47h1#
我得到了同样的问题,我已经添加了视图组件封面为每个按钮像下面的代码:
字符串
eaf3rand2#
首先,当你在react native中设计样式时,所有的东西都已经在flex中了,所以你不必再做
display : flex
了。如果你想在一行中呈现7个相同宽度的按钮,确保它们都有相同的父级,然后在每一个中使用
flex:1
。当你做
flex:1
时会发生什么,当你在样式中,在flex
前面放一个数字时,在这种特定的情况下,它把你的父对象分成许多部分,然后给予给子对象。所以你所有的按钮都有1/7的宽度。如果你把
flex:2
放在其中一个样式中,那么这个按钮的宽度将是2/7,其余的将是1/7。请随时要求对上述内容进行更详细的说明。
vm0i2vca3#
你有没有试过将
flex: 1
添加到列表中,这样它就占据了整个水平空间?vuv7lop34#
在我看来,尝试在样式对象列表中添加
justifyContent
作为space-between
okxuctiv5#
在每个项目中,设置此样式:
字符串
62o28rlo6#
在
React Native Elements
的情况下,我们需要将flex:1
添加到按钮的containerStyle
。