鸿蒙输入框被软键盘遮挡的正确解决办法

zhangzeshuai
发布于 2021-10-2 16:51
浏览
1收藏

在学习HarmonyOS的开发中,遇到TextField输入框被软键盘遮住的问题网上查找了一些解决方案,虽然效果也能达到,但是解决思路不正确,简单问题复杂化了,这里记录一下我发现的解决方法。

先看效果:

鸿蒙输入框被软键盘遮挡的正确解决办法-鸿蒙开发者社区

解决思路

理论上软键盘与输入框应该是常用功能,不应该让用户自己去计算组件高度,监控软键盘是否弹出,所以按照Android的思路也应该有全局设置方法。
Android 解决方法

// 1:xml 配置 
android:windowSoftInputMode="adjustPan" 
// 2:java 配置 
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

跟着这个思路去查询鸿蒙开发文档,找到了两个类似的属性和方法:
WindowManager.LayoutConfig里面的INPUT_ADJUST_RESIZE
和Window里面的setInputPanelDisplayType()

经过多次尝试,终于找到设置软键盘自适应的正确方法,在onStart()函数中设置:

       this.getWindow().setInputPanelDisplayType(WindowManager.LayoutConfig.INPUT_ADJUST_PAN);

解决问题的思路和方向一定要正确

3
收藏 1
回复
举报
3条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

感谢分享,很有帮助。

回复
2021-10-8 10:22:01
Buty9147
Buty9147

感谢分享

回复
2021-10-21 16:01:03
wx5a2e4cd89efd3
wx5a2e4cd89efd3

你有没有发现

软键盘的回车文字是换行而不是完成在鸿蒙系统中

回复
2022-10-13 15:27:01
回复
    相关推荐