Исправить положение FlatList - PullRequest
1 голос
/ 08 июля 2020

Я использую FlatList в своем коде следующим образом:

<View style={styles.listHolder}>
          {data && (
            <FlatList
              data={data.me.friends.nodes}
              horizontal={false}
              scrollEnabled
              renderItem={({ item }) => (
                <FriendItem friend={item} originatorId={data.me.id}/>
              )}
              keyExtractor={(item) => item.id.toString()}
              ListEmptyComponent={NoFriendsContainer}
            />
          )}
          {error && <ErrorContainer />}
        </View>

  listHolder: {
    width: '100%',
    alignItems: 'center',
  },

Каждый FriendItem выглядит примерно так:

 return (
    <View style={styles.item}>
      <TouchableOpacity
        onPress={() =>
          navigation.navigate('FriendDetails', {
            firstName: friend.firstName,
            rating: friend.rating,
            numberOfFriends: friend.friendsOfFriends?.totalCount,
            //onDeleteFriend: onDeleteFriend,
            vehicles: friend.vehicles,
          })
        }>
        <Thumbnail
          style={styles.thumbnail}
          source={{
            uri:
              'https://cdn4.iconfinder.com/data/icons/avatars-xmas-giveaway/128/afro_woman_female_person-512.png',
          }} />
      </TouchableOpacity>
      <View style={styles.nameContainer}>
        <Text style={styles.userName}>{userName}</Text>
      </View>
      <View style={styles.deleteButtonContainer}>
        <Button
          rounded
          style={styles.deleteButton}
          onPress={() => onDeleteFriend(originatorId, friend.id)}>
          <Icon name="trash-o" 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: {
    paddingRight: 55,
    paddingLeft: 10,
    paddingTop: 20,
  },
  deleteButton: {
    backgroundColor: '#31C283',
    width: moderateScale(45),
    justifyContent: 'center',
  },
  deleteButtonContainer: {
    paddingTop: 12,
    marginRight: 2,
  },
  thumbnail: {
    height: 85,
    width: 85,
    marginLeft: 2,
    paddingRight: 0,
    position: 'relative',
  },
  nameContainer: {
    flexDirection: 'row',
  },
});

Теперь проблема в том, что FlatList отображается вертикально, но его полоса прокрутки отображается горизонтально (чего не должно происходить). Кроме того, прямо сейчас я могу двигать его в любом направлении. Этого тоже не должно происходить. Я должен исправить это как есть. Как я могу это сделать? Я не уверен, что это проблема стиля или что-то в компоненте FlatList.

введите описание изображения здесь

1 Ответ

0 голосов
/ 09 июля 2020

и вы добавляете alwaysBounceVertical в плоский список elow,

<FlatList
              data={data.me.friends.nodes}
              horizontal={false}
alwaysBounceVertical={true}
              scrollEnabled
              renderItem={({ item }) => (
                <FriendItem friend={item} originatorId={data.me.id}/>
              )}
              keyExtractor={(item) => item.id.toString()}
              ListEmptyComponent={NoFriendsContainer}
            />

Надеюсь, это поможет. не стесняйтесь сомневаться

...