我想改变
<FlatList />
的宽度和高度。
我将
height
样式设置为当前 <FlatList />
但它从未起作用。
我无法改变
<FlatList />
的高度。
这是我的
render()
功能和样式。
render() {
const listData = [];
listData.push({ key: 0 });
listData.push({ key: 1 });
listData.push({ key: 2 });
listData.push({ key: 3 });
listData.push({ key: 4 });
return (
<View style={styles.container}>
<FlatList
data={listData}
renderItem={({item}) => {
return (
<View
style={{
width: 30, height: 30, borderRadius: 15, backgroundColor: 'green'
}}
/>
)
}}
horizontal
style={styles.flatList}
/>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'white'
},
flatList: {
height: 50,
backgroundColor: 'red'
}
});
这是这段代码的结果。
我花了几个小时才找到答案,但没有任何帮助。
我不确定为什么高度样式不起作用。
将
flexGrow: 0
添加到 flatList 样式对我有用,所以它将是:
flatList: {
height: 50,
backgroundColor: 'red',
flexGrow: 0
}
设置
<View/>
的高度并将 <FlatList/>
放置在 <View/>
内部
添加
flexGrow: 0
。别说高度了,响应式设计可能会被破坏
示例:
<FlatList
style={{
flexGrow: 0,
}}
data={data}
renderItem={({item}) => (
<View>
<Text>{item.text}</Text>
</View>
)}
/>
FlatList 有属性 contentContainerStyle。您可以使用它来设计 FlatList 周围的包装器样式。 FlatList 继承了 ScrollView 的这个 prop readhear
你可以将
flexGrow: 0
添加到对我有用的 flatList 样式中,所以它将是:
<FlatList
{...{otherProps}}
style={{
height: 50,
backgroundColor: 'red',
flexGrow: 0
}}
/>
根据数据给出宽度和高度
<View style={{maxHeight:"50%",width:"60%"}}>
<FlatList
data={this.props.data}
renderItem={({ item }) => <Text>{item.name}</Text>}
keyExtractor={(item, index) => index}
/>
</View>
<View style={styles.flatList}>
<FlatList
keyExtractor = { this.keyExtractor }
data = { this.getPOs() }
ListEmptyComponent = { this.renderEmpty }
ItemSeparatorComponent = { Separator }
renderItem = { this.renderItem }
/>
</View>
对我来说,将 flex: 1 添加到视图中
const styles = StyleSheet.create({
flatList: {
flex: 1,
}
})
要更改
<FlatList />
的高度,您可以将其包裹在 <View />
内并设置 <View />
的高度。这种方法可以让您更好地控制列表的布局和尺寸。
这是一个例子:
import React from 'react';
import { FlatList, View, StyleSheet } from 'react-native';
const App = () => {
const listData = [
{ key: '1' },
{ key: '2' },
{ key: '3' },
{ key: '4' },
{ key: '5' },
];
return (
<View style={styles.container}>
<View style={styles.flatListContainer}>
<FlatList
data={listData}
renderItem={({ item }) => (
<View style={styles.item} />
)}
horizontal
style={styles.flatList}
/>
</View>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'white',
},
flatListContainer: {
height: 100, // Set the desired height here
backgroundColor: 'red',
},
flatList: {
// Remove height from here if it was set
},
item: {
width: 30,
height: 30,
borderRadius: 15,
backgroundColor: 'green',
},
});
export default App;
render() {
const listData = [];
listData.push({ key: 0 });
listData.push({ key: 1 });
listData.push({ key: 2 });
listData.push({ key: 3 });
listData.push({ key: 4 });
return (
<View style={styles.container}>
<FlatList
data={listData}
renderItem={({item}) => {
return (
<View
style={{
width: 30, height: 30, borderRadius: 15, backgroundColor: 'green'
}}
/>
)
}}
horizontal
style={styles.flatList}
/>
</View>
);
}
const styles = StyleSheet.create({
container: {
height:100
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'white'
},
flatList: {
backgroundColor: 'red'
}
});