Reactjs 组合点击关闭键盘、键盘避免查看和提交按钮

Reactjs 组合点击关闭键盘、键盘避免查看和提交按钮,reactjs,typescript,react-native,Reactjs,Typescript,React Native,我有一个屏幕,它有一个大的图像和一个文本输入,底部有一个按钮。该屏幕基本上有三个要求: 当用户点击输入时,输入和按钮应该在键盘上方可见 用户应该能够点击按钮提交文本输入 如果用户点击输入之外的任何地方(包括按钮),键盘应被关闭 我尝试过各种解决方案,包括使用,但没有一种效果很好。这个特定的库似乎吃水龙头,所以你不能按按钮提交。否则就好了 我能找到的最接近的方法是用包围各种屏幕元素。当我尝试在中包装整个屏幕内容时,停止工作 <KeyboardAvoidingView behavior="pa

我有一个屏幕,它有一个大的图像和一个文本输入,底部有一个按钮。该屏幕基本上有三个要求:

  • 当用户点击输入时,输入和按钮应该在键盘上方可见
  • 用户应该能够点击按钮提交文本输入
  • 如果用户点击输入之外的任何地方(包括按钮),键盘应被关闭
  • 我尝试过各种解决方案,包括使用,但没有一种效果很好。这个特定的库似乎吃水龙头,所以你不能按按钮提交。否则就好了

    我能找到的最接近的方法是用
    包围各种屏幕元素。当我尝试在
    中包装整个屏幕内容时,
    停止工作

    <KeyboardAvoidingView behavior="padding">
      <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
        <Image source={require('./img.png')} />
      </TouchableWithoutFeedback>
      <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
        <View>
          {error}
          <Text>Search</Text>
          <TextInput
            value={this.state.search}
            onChange={this.handleChange}
          />
          <TouchableHighlight onPress={this.handleSubmit}>
            <Text>SEARCH</Text>
          </TouchableHighlight>
        </View>
      </TouchableWithoutFeedback>
    </KeyboardAvoidingView>
    
    
    {错误}
    搜寻
    搜寻
    
    这是最接近可行的解决方案,但仍存在一些问题。首先,似乎没有办法为
    键盘添加任何额外的高度以避免出现gView
    ,因此在某些情况下,按钮不会显示在键盘上方。其次,在某些情况下,如果屏幕太高,按钮下方的区域不会关闭键盘,因为没有地方放置
    来隐藏它


    有没有更好的方法可以在键盘打开时向用户显示内容,同时允许用户点击以关闭键盘并与某些控件交互?

    我通过添加

    <KeyboardAwareScrollView 
         ref="scroller"
        keyboardShouldPersistTaps={true} 
        >
    
    
    
    我不能回答你问题的每一部分,但是,
    TextInput
    有一个onBlur事件,可以用来关闭键盘。@在别处点击不会触发
    onBlur
    你找到解决方案了吗?你可以试着使用
    Keyboardawarscrollview