Android 设备上 Unity (2021.3.36f1) 中 TMP_InputField 的软键盘重新聚焦问题

问题描述 投票:0回答:1

问题描述:在某些 Android 设备上(我可以专门测试 Realme 和 Redmi 的型号),会出现以下问题:按下软键盘上的“确定”按钮会导致 TMP_InputField 再次获得焦点,从而无意中触发软键盘重新出现。此问题会导致用户体验中断,因为用户希望键盘在提交后消失。这个问题并不是每次都会出现。我调试发现,就像 onselect 事件在某些情况下会多次排队。

Logs

Unity版本:2021.3.36f1

受影响的 TMP 版本:

-推荐版本:3.0.8

-最新预发布:3.2.0-pre.9

android unity-game-engine android-softkeyboard textmeshpro
1个回答
0
投票
  1. 将导航设置为 None 有很大帮助(问题不太常见),但没有完全解决。

  2. 作为解决问题的方法,您可以将此函数添加到每个 TMP_InputField OnDeselect 监听器中,也许可以过滤掉没有问题的设备。 (通过在开始时查询每个输入字段或扩展 TMP_InputField 类(我猜是更好的解决方案))

    IEnumerator DeactivateEndOfFrame(TMP_InputField inputField) { inputField.shouldHideMobileInput = true; 产量返回新的WaitForEndOfFrame(); inputField.DeactivateInputField(); EventSystem.current.SetSelectedGameObject(null); 产量返回空; // 等待一帧 inputField.shouldHideMobileInput = false; }

    public void OnDeselect(TMP_InputField inputField) { StartCoroutine(DeactivateEndOfFrame(inputField)); }

© www.soinside.com 2019 - 2024. All rights reserved.