React Native中的键盘处理

时间:2018-11-08 06:40:56

标签: react-native

如何使您的应用在键盘外观上正常响应? 到目前为止,我已经尝试了键盘感知滚动,键盘间隔和键盘避免视图

键盘避免视图完全没有帮助,我已经尝试了几次,但是它甚至对键盘的外观都没有响应。

Keyboardspacer可以正常工作,但在很多情况下,它会通过挤压其他视图来破坏整个UI

当应用程序中没有滚动键时,键盘感知滚动功能有效,但是对于长格式而言,它不起作用。

android:windowSoftInputMode =“ adjustPan”仅适用于android

当键盘出现时,应用程序还能正常响应的其他选项有哪些?

您在应用程序中使用什么?

3 个答案:

答案 0 :(得分:1)

在我的项目中,我同时使用react-native-keyboard-aware-scroll-viewKeyboardAvoidingView(尝试使用behavior道具,这取决于您的样式)。

react-native-keyboard-aware-scroll-view文档中的“ Android配置”部分中进行查看。我认为这是您正在寻找的东西。

答案 1 :(得分:1)

如果这些库都不满足您的需要,则可以使用键盘模块(https://facebook.github.io/react-native/docs/keyboard中的文档)手动调整视图 使用它,您可以在知道键盘打开或关闭时做出反应,例如:

import * as React from 'react';
import { Keyboard } from 'react-native';

class MyComponent extends React.Component {
  componentDidMount() {
      this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this.keyboardDidHide);
      this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this.keyboardDidShow);
  }

  componentWillUnmount() {
    this.keyboardDidHideListener.remove();
    this.keyboardDidShowListener.remove();
  }

  keyboardDidShow = () => {
      //Fix your view for when a keyboard shows
  };

  keyboardDidHide = () => {
      //Fix your view for when a keyboard hides
  };

    //Rest of component...

}

答案 2 :(得分:0)

您可以找到与您的问题相关的以下有用答案。

问:如何在Android中更改“软键”“输入”按钮文本? https://stackoverflow.com/a/53098939/6477946

问:如何关闭或隐藏SoftKeyBoard

https://stackoverflow.com/a/53077131/6477946