javascript - 将键盘永久安装在屏幕上

标签 javascript reactjs react-native

<分区>

是否可以让键盘在屏幕上始终可见?

屏幕有:

  • 一个TextInput(多行)
  • 两个FlatList

当我在 TextInput 中输入内容时没问题,但是当我将内容更改为 FlatList 时,键盘被隐藏了

无论我在屏幕上做什么,我都希望键盘始终可见

我测试的内容:

  • keyboardShouldPersistTaps='always' 不工作
  • 一开始我将 autoFocus 设置为 TextInput 并在隐藏键盘时再次显示它。我以为我可以做到这一点,这样过渡就看不到了,但它并没有像它应该的那样工作
componentDidUpdate() {
    setTimeout(() => {
      this.nameInput.focus();
    }, 1);
  }

有什么办法吗?

最佳答案

您应该向 keyboardWillHide 添加一个事件监听器,并在事件触发时聚焦您的 nameInput TextField

像这样:

import React, { Component } from "react";
import { Keyboard, TextInput } from "react-native";

class MyComponent extends Component {
  componentDidMount() {
    this.keyboardWillHideListener = Keyboard.addListener(
      "keyboardWillHide",
      this._keyboardWillHide,
    );
  }

  componentWillUnmount() {
    this.keyboardWillHideListener.remove();
  }

  _keyboardWillHide() {
    // Focus the input
  }

  render() {
    // Your UI here
  }
}

可在此处找到更多信息:https://facebook.github.io/react-native/docs/keyboard.html

关于javascript - 将键盘永久安装在屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58820711/

相关文章:

javascript - 如何在 JavaScript 中更改多维数组的值?

javascript - Jquery 查找元素返回未定义

javascript - [XSS]Expressjs 阻止运行脚本形成 POST 请求

javascript - 在 Rails 3.1 中每 10 秒重新加载一个页面

javascript - 我可以为不同的页面使用多个布局吗?

javascript - ReactJS - 在主组件中重定向

ruby-on-rails - Rails 4 + react rails gem : Could not find generator 'react:install'

android - 如何在 React-Native 中在没有 Internet 的情况下通过 Wifi 发送和接收数据

react-native - 如何使用 react-native-snap-carousel 右对齐旋转木马?

javascript - 如何从一个组件访问单独文件中的其他函数(非组件)的状态值? react js