Le paramètre React natif onStartShouldSetResponder ne fonctionne pas pour le plug-in AutoCompeletInput


Anil Ravsaheb Ghodake

J'utilise un plugin pour l'entrée de saisie semi-automatique. J'ai placé ce composant dans Scrollview. C'est un autre comportement, comme l'affichage de la liste de suggestions dans une fenêtre contextuelle avec notre conception personnalisée.

Plugin référencé: - Plugin

Mais onStartShouldSetResponder {() => true} ne fonctionne pas . À cause de cela, je ne peux pas faire défiler ma liste de suggestions.

Voici mon code implémenté =>

<ScrollView keyboardShouldPersistTaps='always' style={[commonstyles.mainContainer,styles.mainContainer,{marginBottom:20}]}>
            <View style={{width:width-30,height:45}}>
            <Autocomplete
              autoCapitalize="none"
              autoCorrect={false}
              hideResults={false}
              containerStyle={{flex: 1,left: 10,position: 'absolute',right: 10,top: 0,zIndex: 1}}
              data={films.length === 1 && comp(query, films[0].name) ? [] : films}
              defaultValue={query}
              onChangeText={text => this.setState({ query: text })}
              placeholder="Select Contact"
              renderItem={({ id,name }) => (
                <TouchableOpacity onStartShouldSetResponder={()=>{return true;}} activeOpacity={1} onPress={() => this.setState({ query: name })}>
                  <Text style={{fontSize:Global.DESCRIPTION_FONT_SIZE,color:Global.APP_BLACK_COLOR,borderBottomWidth:0.5,borderColor:Global.APP_BLACK_COLOR,padding:5}}>
                    {id} {name}
                  </Text>
                </TouchableOpacity>
              )}
            />
            </View>

</Scrollview>
  • Veuillez me faire savoir si je fais quelque chose de mal.
  • Je suis également incapable de comprendre l'implémentation de la fonction onStartShouldSetResponder ().
  • Suggérer un exemple d'entrée de saisie semi-automatique dans react native qui fonctionne comme le composant Android AutoCompleteTexview.
Poonam

Ajoutez le paramètre scrollEnabled à votre Scrollview.

Essayez avec le code ci-dessous

<ScrollView scrollEnabled={this.state.enableScrollViewScroll} keyboardShouldPersistTaps='always' style={[commonstyles.mainContainer,styles.mainContainer,{marginBottom:20}]}>
    <View style={{width:width-30,height:45}}>
    <Autocomplete
      autoCapitalize="none"
      autoCorrect={false}
      hideResults={false}
      onStartShouldSetResponderCapture={() => {
         var self=this;
         this.setState({ enableScrollViewScroll: false });
         console.log("Here==>",self.state.enableScrollViewScroll);
      }}
      containerStyle={{flex: 1,left: 10,position: 'absolute',right: 10,top: 0,zIndex: 1}}
      data={films.length === 1 && comp(query, films[0].name) ? [] : films}
      defaultValue={query}
      onChangeText={text => this.setState({ query: text })}
      placeholder="Select Contact"
      renderItem={({ id,name }) => (
        <TouchableOpacity  activeOpacity={1} onPress={() => this.setState({ query: name,enableScrollViewScroll:true })}>
          <Text style=                {{fontSize:Global.DESCRIPTION_FONT_SIZE,color:Global.APP_BLACK_COLOR,borderBottomWidth:0.5,borderColor:Global.APP_BLACK_COLOR,padding:5}}>
        {id} {name}
          </Text>
        </TouchableOpacity>
      )}
    />
    </View>

</Scrollview>

Articles connexes