React Native - Android LayoutAnimation клавиатура FlatView Bug

В настоящее время у меня есть раздражающая проблема с (я думаю) LayoutAnimation.

Моя проблема заключается в следующем: у меня есть приложение, в котором я могу искать по всему FlatList, с помощью кнопки поиска я открываю панель и получаю фокус на TextInput, который открывает клавиатуру. Проблема возникает, когда я хочу закрыть ее по какой-то причине, если я закрываю ее вручную с помощью кнопки "Назад" телефона. Она закрывается и все в порядке, нажав на список, чтобы закрыть его, но проблема возникает, когда я закрываю поиск (поэтому TextInput удаляется с экрана, а клавиатура автоматически закрывается даже без вызова .blur() но я тоже пытался и получил ту же проблему.

Вот несколько экранов для объяснения: Список все хорошо Клавиатура открыта Вся зона, которая была покрыта клавиатурой, которая теперь исчезла, по какой-то причине больше не используется

Теперь вот немного кода:

 _onPressSearch() {
LayoutAnimation.easeInEaseOut();
this.setState({ 
  showSearch: !this.state.showSearch
 }, function () {
  ( this.state.showSearch ? 
    this.refs.searchInput.focus() : 
    this.setState({
      searchString: "",
      filtered: null
    }) )
});

}

    var searchBar = (this.state.showSearch ?
  <View>
    <TextInput
      style={styles.searchInput}
      ref='searchInput'
      onChangeText={this._onChangeText.bind(this)}
      value={this.state.searchString}
      underlineColorAndroid={Colors.search}
      maxLength={25}
      autoCapitalize='none'
      autoCorrect={false}
      placeholder={I18n.t('search')}
      placeholderTextColor={Colors.search}
      clearButtonMode='never' />
  </View> : <View />);


    <List style={{ flex: 1 }}>
      <FlatList
        data={(this.state.filtered === null ? this.state.listings : this.state.filtered)}
        keyExtractor={this._keyExtractor}
        extraData={this.state}
        renderItem={this._renderItem} />
    </List>

Я использую:

    "react": "16.0.0-alpha.12",
    "react-native": "0.52.0",

который я обновил с 0.49.4 до 0.52.0, надеясь, что это решит проблему, но, похоже, нет

Для информации: нет проблем в IOS, и я сделал активную анимацию на Android, чтобы получить анимацию. Кроме того, если я удалю анимацию LayoutAnimation.easeInEaseOut();все работает, кроме того, что у меня нет анимации, конечно.

большое спасибо

0 ответов

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