我有一个要放在 FlatList(即 ScrollView)中的数据列表,每当我尝试向下滚动以查看更多列表时,ScrollView 就会弹回列表顶部,所以我永远看不到列表的底部。
我正在使用 Expo,奇怪的是,如果我只是创建一个新项目或将一些代码复制/粘贴到 Snack 中,那么滚动就可以了。仅在我当前的项目中,我无法滚动列表。我什至进入了该main.js
文件并将我的示例代码粘贴在那里,问题仍然存在。
我的示例代码位于此处:https ://snack.expo.io/ryDPtO5-b 我已将此确切代码粘贴到我的项目中,但它没有按预期工作。
版本:RN 0.44 / Expo SDK 17.0.0 / React:16.0.0-alpha.6
我的项目的实际用例包括在屏幕底部三分之一处放置一个 FlatList 组件以显示作业列表。这是我发现错误的地方,也是我开始尝试调试问题的地方。在我的项目中,我有View
一个风格为的父母,其中包含...{flex: 1
的孩子来自List
FlatList
List
react-native-elements
编辑
这是我实际尝试使用的代码:
<View style={styles.container}>
<View style={containerStyles.headerContainerStyle}>
<Text style={[textStyles.h2, { textAlign: "center" }]}>
Territory: {this.props.currentTerritory}
</Text>
</View>
<View style={styles.mapContainer}>
<MapView
provider="google"
onRegionChangeComplete={this.onRegionChangeComplete}
region={this.state.region}
style={{ flex: 1 }}
>
{this.renderMapMarkers()}
</MapView>
</View>
<Badge containerStyle={styles.badgeStyle}>
<Text>Orders Remaining: {this.props.jobsList.length}</Text>
</Badge>
<List containerStyle={{ flex: 1 }}>
<FlatList
data={this.props.jobsList}
keyExtractor={item => item.id}
renderItem={this.renderJobs}
removeClippedSubviews={false}
/>
</List>
</View>;
还有我所有的风格
const styles = StyleSheet.create({
container: {
flex: 1,
},
mapContainer: {
height: 300,
},
badgeStyle: {
backgroundColor: 'green',
alignSelf: 'center',
marginTop: 15,
width: 300,
height: 35,
},
});
最后,我的 renderItem 函数:
renderJobs = ({ item }) => {
const { fullAddress, pickupTime } = item;
return (
<ListItem
containerStyle={
item.status === "active" && { backgroundColor: "#7fbf7f" }
}
title={fullAddress}
titleStyle={{ fontSize: 14 }}
subtitle={pickupTime}
subtitleStyle={{ fontSize: 12, color: "black" }}
onPress={() =>
this.props.navigation.navigate("jobActions", { job: item })
}
/>
);
};