React Native FlatList无法使用自定义renderItem垂直滚动,并且无法查看列表中的所有项目

时间:2019-10-25 11:01:56

标签: react-native react-native-android expo react-native-flatlist

我创建了一个屏幕,将图像作为整个屏幕的背景。我想显示一个带有FlatList的数组列表。我已经创建了一个单独的功能组件作为FlatList项目的cardItem,并将其包装在ConstraintLayout元素内。我已经搜索了很多东西,还在很多站点上阅读了问题的答案,但是我的FlatList不能垂直滚动,最终我无法查看ArrayList中的某些项目。这是我的一些示例代码:

<View></View>

请告诉我我要去哪里了。预先感谢大家!

1 个答案:

答案 0 :(得分:0)

我在https://snack.expo.io/?session_id=snack-session-wKlWVe6l2尝试了此示例,该示例正在使用Flatlist并以滚动视图显示。请看看。

import React from 'react';
import { SafeAreaView, View, FlatList, StyleSheet, Text } from 'react-native';
import Constants from 'expo-constants';

const DATA = [
  {
    id: 'bd7acbea-c1b1-46c2-aed5-3ad53abb28ba',
    title: 'First Item',
  },
  {
    id: '3ac68afc-c605-48d3-a4f8-fbd91aa97f63',
    title: 'Second Item',
  },
  {
    id: '58694a0f-3da1-471f-bd96-145571e29d72',
    title: 'Third Item',
  },
  {
    id: 'bd7acbea-c1b1-46c2-aed5-3ad53abb28ba',
    title: 'Fourth Item',
  },
  {
    id: '3ac68afc-c605-48d3-a4f8-fbd91aa97f63',
    title: 'Fifth Item',
  },
  {
    id: '58694a0f-3da1-471f-bd96-145571e29d72',
    title: 'Sixth Item',
  },
    {
    id: 'bd7acbea-c1b1-46c2-aed5-3ad53abb28ba',
    title: 'Seventh Item',
  },
  {
    id: '3ac68afc-c605-48d3-a4f8-fbd91aa97f63',
    title: 'Eighth Item',
  },
  {
    id: '58694a0f-3da1-471f-bd96-145571e29d72',
    title: 'Nineth Item',
  },
];

function Item({ title }) {
  return (
    <View style={styles.item}>
      <Text style={styles.title}>{title}</Text>
    </View>
  );
}

export default function App() {
  return (
    <SafeAreaView style={styles.container}>
      <FlatList
        data={DATA}
        renderItem={({ item }) => <Item title={item.title} />}
        keyExtractor={item => item.id}
      />
    </SafeAreaView>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    marginTop: Constants.statusBarHeight,
  },
  item: {
    backgroundColor: '#f9c2ff',
    padding: 20,
    marginVertical: 8,
    marginHorizontal: 16,
  },
  title: {
    fontSize: 32,
  },
});