uni-app 安卓平台 input输入框失去焦点隐藏键盘后留下空白区域,苹果无此问题

uni-app 安卓平台 input输入框失去焦点隐藏键盘后留下空白区域,苹果无此问题

示例代码:

setTimeout(function(){ uni.hideKeyboard();//隐藏软键盘 },250);


## 操作步骤:


input 输入文字 之后,点击发送,调用api新增评论,评论成功后,会去掉input的焦点,同时隐藏键盘。

预期结果:

键盘消失,页面下拉


## 实际结果:


键盘消失了,但是也留下了空白

bug描述:

安卓 input输入框 失去焦点以后 隐藏键盘,键盘消失了,键盘位置留下了一片空白,苹果没有这个问题。

已经调用了隐藏键盘方法


![Image](https://www.itying.com/uniimg.php?url=https://img-cdn-tc.dcloud.net.cn/uploads/questions/20210417/e7dc2e622168b5fe5bc825a08eeb5137.jpg)

![Image](https://www.itying.com/uniimg.php?url=https://img-cdn-tc.dcloud.net.cn/uploads/questions/20210417/63d8ffad2ac5f71ff8aa4f89a7a011a3.jpg)

更多关于uni-app 安卓平台 input输入框失去焦点隐藏键盘后留下空白区域,苹果无此问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 安卓平台 input输入框失去焦点隐藏键盘后留下空白区域,苹果无此问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个常见的安卓平台兼容性问题。当调用 uni.hideKeyboard() 隐藏键盘时,安卓系统需要时间来处理键盘收起后的布局重排。

建议在隐藏键盘后添加页面滚动恢复逻辑:

setTimeout(function(){
    uni.hideKeyboard();
    // 添加页面滚动复位
    uni.pageScrollTo({
        scrollTop: 0,
        duration: 0
    });
}, 250);

或者使用更可靠的焦点移除方式:

// 先移除输入框焦点
this.inputFocus = false;
setTimeout(() => {
    uni.hideKeyboard();
}, 100);
回到顶部