React Native:FlatList呈现的项目之间的空白

时间:2019-08-27 13:48:59

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

我正在尝试使用FlatList在应用程序中显示一些获取的数据。它可以工作,但是项目之间有一个血腥的大空间!

这是我的FlatList代码:

<View style={styles.showresp}>
                <FlatList
                    data={this.state.responsjson}
                    renderItem={({ item }) =>
                    <View style={styles.weatherview}>
                            <Text style={styles.city}>{item.name}</Text>
                            <Text style={styles.country}>{item.country}</Text>
                            <Text style={styles.temp}>{item.temp_c}</Text> 
                    </View>}/>
</View>

this is what i see in screen

它是样式:

showresp: {
    backgroundColor: '#fffa',
    height: 315,
    marginRight: '10%',
    marginLeft: '10%',
    marginTop: '15%',
    borderRadius: 15
},
 weatherview:{
        alignItems: 'center',
        justifyContent: 'center',
        flex :1
},
city: {
    fontFamily :'Wonderbar Demo',
    fontSize:40,
    color:'#880e4f',

},
country:{
    fontSize:20,
    fontFamily:'Samim-Bold',
    backgroundColor:'red',

},
temp:{
    fontFamily :'Wonderbar Demo',
    fontSize : 40,
    backgroundColor:'green',

},

我为上下文本设置了背景颜色以查找问题,但是对此我没有任何血腥的想法。

您能在这件事上指导我吗?ಠ_ಠ

2 个答案:

答案 0 :(得分:0)

我为你树立了榜样。看这个。你和我之间的区别是没有余地的。

我的父母是flatist

您不必像这样将View放在一旁。您可以将视图放在所需的项目中。

import React, { Component } from 'react';
import { View, Text, FlatList } from 'react-native';

const users = [
  {
    name: 'Cathy Gilliam',
    company: 'EXOVENT',
    email: 'cathygilliam@exovent.com',
  },
  {
    name: 'Norton Potts',
    company: 'COREPAN',
    email: 'nortonpotts@corepan.com',
  },
  {
    name: 'Kelly Collins',
    company: 'SECURIA',
    email: 'kellycollins@securia.com',
  },
];

export default class App extends Component {
  render() {
    return (
      <FlatList
        data={users}
        renderItem={({ item }) => (
          <View
            style={{
              borderBottomWidth: 1,
              borderBottomColor: 'grey',
              padding: 10
            }}>
            <View>
              <Text style={{ fontWeight: 'bold', fontSize: 18 }}>{item.name}</Text>
              <Text>{item.company}</Text>
              <Text>{item.email}</Text>
            </View>
          </View>
        )}
      />
    );
  }
}

答案 1 :(得分:0)

它应该起作用:

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

// You can import from local files
import AssetExample from './components/AssetExample';

// or any pure javascript modules available in npm
import { Card } from 'react-native-paper';

export default class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      responsjson: [{
        name: 'Name1',
        country: 'Country1',
        temp_c: '45'
      },
      {
        name: 'Name2',
        country: 'Country2',
        temp_c: '45'
      }]
    };
  }

  render() {
    return (
      <View style={styles.showresp}>
        <FlatList
          data={this.state.responsjson}
          renderItem={({ item }) =>
            <View style={styles.weatherview}>
              <Text style={styles.city}>{item.name}</Text>
              <Text style={styles.country}>{item.country}</Text>
              <Text style={styles.temp}>{item.temp_c}</Text>
            </View>} />
      </View>
    );
  }
}

const styles = StyleSheet.create({
  showresp: {
    backgroundColor: '#fffa',
    height: 315,
    marginRight: '10%',
    marginLeft: '10%',
    marginTop: '15%',
    borderRadius: 15
  },
  weatherview: {
    alignItems: 'center',
    justifyContent: 'center',
    flex: 1
  },
  city: {
    fontFamily: 'Wonderbar Demo',
    fontSize: 40,
    color: '#880e4f',

  },
  country: {
    fontSize: 20,
    fontFamily: 'Samim-Bold',
    backgroundColor: 'red',

  },
  temp: {
    fontFamily: 'Wonderbar Demo',
    fontSize: 40,
    backgroundColor: 'green',

  },
});

图片:

enter image description here