Реагировать на собственный параметр onStartShouldSetResponder, не работающий для плагина AutoCompeletInput

Я использую плагин для автозаполнения ввода. Я поместил этот компонент в Scrollview. Другое поведение - это нормально, например, отображение списка предложений во всплывающем окне с нашим индивидуальным дизайном.

Упомянутый плагин: - Плагин

Но onStartShouldSetResponder {() => true} не работает. Из-за этого я не могу прокручивать список предложений.

Вот мой реализованный код =>

<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>
  • Пожалуйста, дайте мне знать, если я делаю что-то не так.
  • Также я не могу понять реализацию функции onStartShouldSetResponder ().
  • Предложите пример ввода автозаполнения в react native, который работает как компонент Android AutoCompleteTexview.
1
0
1 429
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Добавьте параметр scrollEnabled в свой Scrollview.

Попробуйте с кодом ниже

<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.info("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>

Другие вопросы по теме