鸿蒙输入框被软键盘遮挡的正确解决办法
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
回复
相关推荐
感谢分享,很有帮助。
感谢分享
你有没有发现
软键盘的回车文字是换行而不是完成在鸿蒙系统中