4

我目前对(我认为)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(); ,除了我当然没有动画之外,一切正常。

非常感谢

4

0 回答 0