当菜单安装时,如果键盘已经打开,菜单会忽略键盘

作者: joshoakleaf创建于 2026年9月2日更新于 2026年9月2日

页:1

Menu ' 表示屏幕上键盘,但它只从“键盘DidShow”挂起后抵达的事件中学习出键盘高度**。 iOS不为已经打开的键盘重放该事件,因此,“Menu”在键盘已经挂起时**将“Menu”挂起,使0' 的高度保持了对全窗口的测量,并将其物品放出键盘下——在键盘下,它们不能被挖掘,而且其本身的溢出滚动从未参与,因为只要它知道物品合适。

目前的行为

5.14.5中的 " src/ 组件/Menu/Menu.tsx " :

  • L215 — “收缩键盘HeightRef = react.use Ref (0);”
  • L221-228-键盘DidShow'/键盘DidHide'设定并清除了该值。
  • L413-420——两个收听器都被绑在了相机效应内.
  • L343 — show()' 使用参考文件:高:窗口LayoutResult.hight - 键盘HeightRef.current. '

当键盘在挂载时已经可见时,没有“键盘DidShow”到达,裁判员保留`0',而L343则不减去任何值。

为什么这在实际中出现

用户输入时创建的属于行的任何菜单 。 在我们的应用程序中,对人进行文字实地搜索,每人加上自己的 " Menu " 一行。 字段保持焦点( “ keyboard shouldPersist Taps = ” handled” ), 因此这些菜单中的每一张都带有键盘已经打开了 。

一个屏幕上的两个菜单,相同的捆绑和相同的键盘状态,使原因变得毫不含糊:

键盘高度,它相信结果 |.


QQ 键盘已打开 QQ `0' 键盘上方为 Y= 737 键盘上方为 Y= 509 键盘上方的键盘, 键盘上方为 QQ 键盘已打开 QQ 键盘时添加到一行 ; 后六项无法应用 QQ

  • 复制步骤
  1. 在 " 卷轴View " 内加上 " 键盘应接 " 。
  2. 附带条件** 制作 " Menu " ,使其只在输入有文本之后才能上载 -- -- 例如,值。
  3. 给菜单内容足够通过键盘(390×844屏幕上约8个).
  4. 重点输入,键入一个字符后,再将主播拍出而不丢弃键盘.

菜单在键盘下延伸. 无条件挂载同一菜单,并正确定位。

  • 预期行为

当键盘挂起时,菜单对键盘所留下的空间进行测量。

建议改正

在开放时间读取当前键盘的度量衡,而不是只依赖事件. 在`显示'中:

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? 设置WindowLayout({

  • 高度:窗口LayoutResult.height - 键盘Height Ref.current, +高:
  • 窗口 LayoutResult. hight - +(键盘.度量?.高???键盘HeightRef.current), 宽度:窗口LayoutResult.width,
  • ;

在键盘未显示时, 键盘. 度量衡( ) 返回“ 未定义的 ” , 因此, 现有值仍为倒数 。

** 我还没有测试此补丁。 ** 我研究过应用代码的问题
. . . . . . .

内容来源: callstack/react-native-paper