如何在React Native中获取TextInput相对于其父级或屏幕的光标位置

Kak*_*kar 13 javascript react-native

有没有办法在没有响应的情况下获取TextInput光标的Y位置(如果可能的话)而没有任何本地(android / ios)黑客攻击?我并不是说光标选择状态的开始和结束。我想要实现的是,当键盘打开时,我想根据光标的位置显示模式,就像在Facebook和Instagram中提到的那样。或者光标可能在哪一行?这样,我也许能够计算光标的位置。

意思是,如果光标在TextInput的开头(屏幕顶部),我想在光标下方显示模式,直到键盘。如果光标位于TextInput的中间或底部(屏幕顶部和Keyboard之间的可见区域的中间),我想在光标上方显示模式。

用例:

  1. 此处,光标在屏幕顶部。

在此处输入图片说明

而且,由于光标位置和键盘之间有空间,所以我想在光标和键盘之间显示模式。

在此处输入图片说明

  1. 在这种情况下,光标位于屏幕顶部和键盘之间的大约中间位置。

在此处输入图片说明

由于在这种情况下,光标上方到屏幕顶部的空间很大,因此我想在光标上方显示模式。

在此处输入图片说明

  1. 用户还可以更改光标位置,并从新的光标位置开始键入。因此,我不能仅仅测量TextInput的高度并依靠TextInput的高度,这就是为什么我需要知道光标Y位置在哪里的原因。

Kak*_*kar 1

我希望通过在 TextInput 组件内实现虚拟 Text 组件,使用 @JohnKrakov 方法获取光标的位置。但由于文本组件的性质,这是不可能的。我已经设法在 React Web 应用程序中解决这个问题,但不能在 React Native 中解决这个问题。

\n\n

但是,我发现了一篇关于如何在 React Native 中提取光标\xe2\x80\x99s 位置的中等帖子。这是一篇非常长的帖子,所以我无法回答这篇文章中的步骤,而是要求您浏览他的帖子并感谢他的工作。

\n\n

更新

\n\n

有一个功能请求需要在 React Native 中获取光标位置。如果您也需要,请在此链接中投票请求。

\n