如果你想把<代码>FlatList的底线滚动,你可尝试使用<代码>scrollToEnd( ref。 在<代码>FlatList之后,或者在添加新电文后,你可以使用这种方法。 您也可使用推进代码<>onContentSizeChange,以便在内容大小发生变化时启动滚动。
例如:
import React, { useEffect, useRef } from react ;
import { View, Text, FlatList, StyleSheet } from react-native ;
const MessageView = () => {
const messages = [...];
const flatListRef = useRef();
useEffect(() => {
if (flatListRef.current) {
flatListRef.current.scrollToEnd({ animated: false });
}
}, []);
const renderItem = ({ item }) => {
return (
<View style={styles.messageContainer}>
<Text style={styles.userName}>{item._id}</Text>
<Text style={styles.userName}>{item.user.name}</Text>
<Text style={styles.messageText}>{item.text}</Text>
</View>
);
};
return (
<View style={styles.container}>
<FlatList
ref={flatListRef}
data={messages}
keyExtractor={(item) => item._id}
renderItem={renderItem}
onContentSizeChange={() => flatListRef.current.scrollToEnd()}
/>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: #f5f5f5
},
messageContainer: {
padding: 10,
marginVertical: 5,
marginHorizontal: 10,
borderRadius: 8,
backgroundColor: #ffffff ,
},
userName: {
fontWeight: bold ,
marginBottom: 5,
},
messageText: {
fontSize: 16,
},
});
export default MessageView;