2017-04-11 36 views
3

嗨,我是新的React Native。如何創建兩個空間beetwen在反應原生列 - flatList

我想創建兩個列布局,空間使用反應本地組件名爲flatList。

這是我的看法代碼:

<View style={styles.container}> 
     <FlatList 
      data={db} 
      keyExtractor={ (item, index) => item.id } 
      numColumns={2} 
      renderItem={ 
       ({item}) => (
        <TouchableWithoutFeedback onPress ={() => showItemDetails(item.id)}> 
         <View style={styles.listItem}> 
          <Text style={styles.title}>{item.name}</Text> 
          <Image 
           style={styles.image} 
           source={{uri: item.image}} 
          /> 
          <Text style={styles.price}>{item.price} zł</Text> 
         </View> 
        </TouchableWithoutFeedback> 
       ) 
      } 
     /> 
    </View> 

這裏是風格:

container: { 
    flex: 1, 
    flexDirection: 'row', 
    justifyContent: 'space-between', 
    padding: 10, 
    marginBottom: 40 
}, 
listItem: { 
    maxWidth: Dimensions.get('window').width /2, 
    flex:0.5, 
    backgroundColor: '#fff', 
    marginBottom: 10, 
    borderRadius: 4, 
}, 

而結果是兩列,但沒有之間的空間。 你能幫我解決這個問題嗎?

回答

0

我還沒有使用這個庫,但將padding: 10添加到listItem樣式應該有所幫助。

0

只需爲列表項的樣式添加一些邊距即可。

listItem: { 
    margin: 10, 
} 
+0

這與flatList會搞亂滾動偏移,從而產生滾動列表不能滾動內容的底部。 –

2

你得給styles.containercontentContainerStyle歡迎使用屬性Flatlist的,就像這樣:

<FlatList 
     data={db} 
     keyExtractor={ (item, index) => item.id } 
     contentContainerStyle={styles.container} 
     numColumns={2} 
     renderItem={ 
      ({item}) => (
       <TouchableWithoutFeedback onPress ={() => showItemDetails(item.id)}> 
        <View style={styles.listItem}> 
         <Text style={styles.title}>{item.name}</Text> 
         <Image 
          style={styles.image} 
          source={{uri: item.image}} 
         /> 
         <Text style={styles.price}>{item.price} zł</Text> 
        </View> 
       </TouchableWithoutFeedback> 
      ) 
     } 
    />