【问题标题】:React Native: How to keep multi-line textinput visible above keyboardReact Native:如何使多行文本输入在键盘上方可见
【发布时间】:2016-09-21 19:46:26
【问题描述】:

我有一个多行设置为 true 的 TextInput。 我正在滚动到焦点输入:

scrollResponder.scrollResponderScrollNativeHandleToKeyboard(
  React.findNodeHandle(this.refs.myInput),
  0,
  true
);

但是,当多行 TextInput 展开时,文本将隐藏在键盘下方。 我只想在光标/当前文本不可见时向下滚动。所以我不能只在文本更改上运行上面的代码,因为即使当前光标/当前文本可见(如在第一行进行编辑),它也会滚动视图。

有什么方法可以让光标/当前文本在屏幕上的位置? 还是有其他方法可以做我想做的事情?

目前:

我想要实现的目标:

【问题讨论】:

    标签: javascript ios react-native textinput


    【解决方案1】:

    您可以使用由 View(Text 扩展)提供的 onLayout 方法。它返回视图的尺寸,您可以使用它来重新计算滚动视图的滚动位置。

    【讨论】:

    • TextInput添加文本时好像没有调用
    【解决方案2】:

    最好的方法似乎是使用 react-native-keyboard-aware-scroll-view 库并使用方法 _scrollToInput 并按照文档所说的进行操作。

    我必须更改的一件事是在文档中调用“this.scroll.props.scrollToFocusedInput(reactNode)”而不是“this.scroll.scrollToFocusedInput(reactNode)”!

    【讨论】:

      【解决方案3】:

      我找到了这个组件...但它对我不起作用(我在“导入”时遇到错误)。我认为它们最终会得到修复。

      https://github.com/VansonLeung/react-native-keyboard-aware-view

      【讨论】:

        猜你喜欢
        • 2019-06-30
        • 2021-01-07
        • 2020-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 2018-02-16
        • 2019-06-12
        相关资源
        最近更新 更多