【发布时间】:2020-10-29 21:11:49
【问题描述】:
我使用的 FlatList 可能只有一项或多项。但是,当我只有一个项目时,我希望它以某种方式修复。目前,如果我按住它并向下滚动它,它就会开始隐藏。我该如何解决这个问题?
如果我使用scrollEnabled={false},那么在我有来自 FlatList 的多个项目的情况下它会变得不方便,因为我无法滚动屏幕并查看剩余的项目。
<View style={styles.listHolder}>
{data &&
<FlatList
data={data.me.pendingUserRelationsRequestsSent.nodes}
horizontal={false}
renderItem={({ item }) => (
<UserItem
user={item}
originatorId={data.me.id}
/>
)}
keyExtractor={(item) => item.id.toString()}
ListEmptyComponent={NoRequestsContainer}
/>
}
{error && <ErrorContainer />}
</View>
listHolder: {
width: '100%',
},
UserItem.tsx
return (
<View style={styles.item}>
<Thumbnail
style={styles.thumbnail}
source={{
uri:
'https://cdn4.iconfinder.com/afro_woman_female_person-512.png',
}}></Thumbnail>
<View style={styles.nameContainer}>
<Text style={styles.userName}>{userName}</Text>
</View>
<View style={styles.buttonContainer}>
<Button
rounded
style={styles.cancelButton}
onPress={() => onCancelRequest(originatorId, user.id)}>
<Icon name="close" size={moderateScale(20)} color="black" />
</Button>
</View>
</View>
);
};
export const styles = StyleSheet.create({
item: {
backgroundColor: 'white',
borderRadius: moderateScale(20),
padding: moderateScale(20),
marginVertical: moderateScale(8),
marginHorizontal: 16,
height: moderateScale(110),
//width: moderateScale(360),
justifyContent: 'space-between',
flexDirection: 'row',
},
userName: {
paddingTop: 20,
},
buttonContainer: {
paddingTop: 12,
marginRight: 2,
flexDirection: 'row',
justifyContent: 'space-between',
},
cancelButton: {
backgroundColor: '#e8403a',
width: moderateScale(45),
justifyContent: 'center',
},
thumbnail: {
height: 85,
width: 85,
marginLeft: 2,
paddingRight: 0,
position: 'relative',
},
nameContainer: {
flexDirection: 'row',
paddingRight: 30,
},
});
因为我把它拖下来,它的顶部也有很多空间。这也不应该发生。
【问题讨论】:
-
贾马尔你的回答奏效了。请改写!
标签: javascript reactjs typescript react-native react-native-flatlist