uni-app Android App下,输入框会频繁聚焦失焦

发布于 1周前 作者 yibo5220 来自 Uni-App

uni-app Android App下,输入框会频繁聚焦失焦

示例代码:

<template>  
  <input :focus="focus" @focus="focus = true" @blur="focus = false" />  
</template>  

<script>  
export default {  
  data() {  
    return { focus: false };  
  }  
}  
</script>

操作步骤:

  1. 点击输入框聚焦
  2. 快速点击空白处使输入框失焦

预期结果:

正常失焦状态,不要频繁触发聚焦失焦。

实际结果:

输入框频繁聚焦失焦,软键盘弹起落下导致页面抖动!

bug描述:

Android App,在状态控制输入框焦点状态(focus 属性)的情况下,点击输入框聚焦后快速点击空白使其失焦,大概率出现输入框在聚焦、失焦状态间频繁切换,软键盘频繁弹起、落下,导致页面抖动!!!看附件视频!!!

项目属性
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境版本号 window 10
HBuilderX类型 正式
HBuilderX版本号 3.97
手机系统 Android
手机系统版本号 Android 10
手机厂商 小米
手机机型 mix3
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

5 回复

之前也遇到过,所以给focus = true 加个延时


试了没有效果,还是会触发多次

现在研究的解决方案是 renderjs 里用 window 捕获全局事件,输入框聚焦后 300ms 内阻止全局的 touchend 的默认行为

回复 1***@139.com: 可以可以(๑•̀ㅂ•́)و✧

在 Uni-app 开发 Android 应用时,输入框频繁聚焦和失焦的问题通常与以下几个方面有关。以下是一些可能的原因和解决方案:


1. 布局问题

  • 原因:如果输入框的布局在焦点变化时发生了重新渲染(例如高度变化、位置调整等),可能会导致输入框频繁失焦。
  • 解决方法
    • 确保输入框的布局稳定,避免在焦点变化时触发布局重绘。
    • 使用 fixed 定位或 flex 布局来稳定输入框的位置。

2. 键盘弹出事件

  • 原因:在 Android 设备上,键盘弹出或收起时,可能会触发页面的重新布局,导致输入框失焦。
  • 解决方法
    • pages.json 中配置 softInputModeadjustPan,避免页面布局被键盘挤压:
      {
        "pages": [
          {
            "path": "pages/index/index",
            "style": {
              "app-plus": {
                "softInputMode": "adjustPan"
              }
            }
          }
        ]
      }
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!