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

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

先看效果:

鸿蒙输入框被软键盘遮挡的正确解决办法-鸿蒙HarmonyOS技术社区

解决思路

理论上软键盘与输入框应该是常用功能,不应该让用户自己去计算组件高度,监控软键盘是否弹出,所以按照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);

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

你可能感兴趣的:(鸿蒙输入框被软键盘遮挡的正确解决办法)