2017-10-15 5 views
0

Je suis en train de mettre en œuvre une page de commentaire comme Facebook. D'une manière ou d'une autre, je reçois beaucoup d'espace blanc. Regarde ça!Gros espace entre les éléments dans FlatList

enter image description here

Quand je défiler au fond ... le reste des commentaires sont là .. bizarre

enter image description here

Voici ma fonction et rendre FlatList

render() { 
    return (
     <RkAvoidKeyboard style={styles.bigContainer} onResponderRelease={(event) => { 
     Keyboard.dismiss(); 
     }}> 
     <FlatList 
      ref='list' 
      style={styles.root} 
      data={this.props.comments} 
      ItemSeparatorComponent={this._renderSeparator} 
      keyExtractor={this._keyExtractor} 
      renderItem={this._renderItem}/> 
      {this._renderKeyboard()} 
     </RkAvoidKeyboard> 
    ) 
    } 

_keyExtractor(item, index) { 
    return item.id; 
    } 

    _renderSeparator() { 
    return (
     <View style={styles.separator}/> 
    ) 
    } 

Je définis la couleur d'arrière-plan de la FlatList et il colore tous les écrans (sauf le clavier et la navigation). Je n'ai pas remarqué cela jusqu'à ce que j'applique ma saisie au clavier. Donc, rien de mal avec le clavier.

Ceci est tellement werid .. !!

Répondre

0

Je recevais null pour mon image d'avatar et cela a montré la liste blanche énorme. Je l'ai compris lors de l'impression de tous les commentaires sur la console

Merci les gars!

1

Pour moi, l'espace ressemble exactement à la taille du clavier, au lieu d'utiliser l'entretoise RkAvoidKeyboard, essayez d'utiliser react-native-keyboard-spacer

Il est facile de mettre en place et vous aurez juste à le mettre sous votre commentaire composant TextInput ou au le fond du récipient, selon ce qui vous convient.

Voici un exemple que je peux fournir et qui peut vous aider à

<View> 

<FlatList 
    data = {dataSource} 
    renderItem = {({item}) => this._renderFlatListItem(item)} 
    keyExtractor = {(item) => item.id} 
/> 


<View style={style.textInputContainer}> 

    <TextInput 
     placeholder={"Text goes here"} 
     ref={input => { this.textInput = input }} 
     onChangeText={(text) => this.setState({currentMessage:text})} 
     value={this.state.message} 
     multiline={true} 
     underlineColorAndroid = {'transparent'} 
    /> 

    <TouchableHighlight 
     underlayColor={'transparent'} 
     style={style.sendButtonContainer} 
     onPress = {() => {this._sendMessage();}}> 

     <Image source={require('../../Assets/Images/shape.png')} 
       style={style.sendButton} resizeMode="contain"/> 

    </TouchableHighlight> 


</View> 

<KeyboardSpacer/> 

Bonne chance!

+0

C'est en fait un excellent point. Merci pour la contribution. Il a effectivement résolu mon problème KeyboardSpacer mais l'espace reste le même. Plus de réflexion? –

+0

Essayez d'ajouter style = {{flex: 1}} à la flatList –

+0

Une idée sur ce post ?? Je pense que vous pourriez avoir une idée https://stackoverflow.com/questions/46864293/how-to-draw-square-to-tag-an-object-react-native –