React本机Android键盘突出显示文本问题

React本机Android键盘突出显示文本问题,android,reactjs,react-native,Android,Reactjs,React Native,在React Native上突出显示输入组件中的文本时出现android问题 功能正常重新启动应用程序时,您可以打开和关闭输入框,并按如下方式键入和发送消息: 现在,当您按住文本以高亮显示它(以便可以复制/粘贴/剪切文本)时,会出现问题: 发生这种情况后,关闭并重新打开文本框具有相同的效果(显示底部的导航栏)。现在,无论键盘是否处于活动状态,键盘似乎覆盖在屏幕顶部,因为下面的文本被渲染为键盘最小化 这个特性如何在整个键盘应用程序中打破状态?有人可以链接或通知我如何处理或访问Android顶

在React Native上突出显示输入组件中的文本时出现android问题

功能正常重新启动应用程序时,您可以打开和关闭输入框,并按如下方式键入和发送消息:

现在,当您按住文本以高亮显示它(以便可以复制/粘贴/剪切文本)时,会出现问题:

发生这种情况后,关闭并重新打开文本框具有相同的效果(显示底部的导航栏)。现在,无论键盘是否处于活动状态,键盘似乎覆盖在屏幕顶部,因为下面的文本被渲染为键盘最小化

这个特性如何在整个键盘应用程序中打破状态?有人可以链接或通知我如何处理或访问Android顶部显示的复制/粘贴功能吗?没有意义的是,一旦发生这种情况,整个应用程序就会因键盘输入而中断—您可以通过重新启动应用程序使其重新工作

相关代码如下(如果有遗漏,请说):

DeviceEventEmitter代码:

  componentDidMount: function(){
    let context = this,

    DeviceEventEmitter.addListener('keyboardWillShow', function(e: Event) {
        context.setState({
            height: context.listViewMaxHeight - e.endCoordinates.height + 50,
        });
    });

    DeviceEventEmitter.addListener('keyboardWillHide', function(e: Event) {
        context.setState({
            height: context.listViewMaxHeight,
        })
    });
}
组件渲染函数中的TextInput组件:

      <View style={styles.textInputContainer}>
          <TextInput
            maxNumberOfLines={8}
            multiline={true}
            autoFocus={false}
            editable={true}
            numberOfLines= {5}
            ref='textInput'

            onChangeText={this.onChangeText}
            style={[styles.textInput, {height: context.props.textInputHeight}]}
            placeholder={context.props.placeholder}
            placeholderTextColor="#5A5A5A"
            value={context.state.text}/>

            <Button
                style={styles.sendButton}
                onPress={this._onPress}
                disabled={this.state.disabled}>
            Send </Button>
      </View>

发送

解决此问题的第一个主要部分是使用keyboardDidShow和keyboardDidHide,而不是keyboardWillShow和keyboardWillHide。(谢谢你@pinewood)

第二个组件是确保使用清单来获得所需的键盘功能,目前我们改为:

<activity android:windowSoftInputMode="stateUnspecified|adjustPan" />

解决此问题的第一个主要部分是使用keyboardDidShow和keyboardDidHide,而不是keyboardWillShow和keyboardWillHide。(谢谢你@pinewood)

第二个组件是确保使用清单来获得所需的键盘功能,目前我们改为:

<activity android:windowSoftInputMode="stateUnspecified|adjustPan" />

我不确定这是否是问题所在,因为键盘在大多数情况下都能正常工作,但我不认为keyboardWillHide和keyboardWillShow在Android上已经实现。然而,keyboardDidShow和keyboardDidHide是。请参阅:@pinewood Yeh键盘工作正常,因为当突出显示的功能显示在顶部时,您仍然可以键入并关闭键盘,因此键盘不是问题所在。突出显示的文本打断的是视图的高度,在该视图中,无论键盘事件发射器设置状态高度如何,内容都会返回到键盘未显示时的位置。如果有一个组件的名称,我可能能够更好地管理状态的基础上,它的属性,如果它是active@pinewood哦,是的,我试过使用DidShow和DidHide,当然,它们的功能都是一样的。我不确定这是否是问题所在,因为大多数时候键盘的操作都是正确的,但我不认为keyboardWillHide和keyboardWillShow已经在Android上实现了。然而,keyboardDidShow和keyboardDidHide是。请参阅:@pinewood Yeh键盘工作正常,因为当突出显示的功能显示在顶部时,您仍然可以键入并关闭键盘,因此键盘不是问题所在。突出显示的文本打断的是视图的高度,在该视图中,无论键盘事件发射器设置状态高度如何,内容都会返回到键盘未显示时的位置。如果有一个组件的名称,我可能能够更好地管理状态的基础上,它的属性,如果它是active@pinewood哦,是的,我试过使用DidShow和DidHide,当然,两者的功能都一样。