uni-app Android App下,输入框会频繁聚焦失焦
uni-app Android App下,输入框会频繁聚焦失焦
示例代码:
<template>
<input :focus="focus" @focus="focus = true" @blur="focus = false" />
</template>
<script>
export default {
data() {
return { focus: false };
}
}
</script>
操作步骤:
- 点击输入框聚焦
- 快速点击空白处使输入框失焦
预期结果:
正常失焦状态,不要频繁触发聚焦失焦。
实际结果:
输入框频繁聚焦失焦,软键盘弹起落下导致页面抖动!
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
中配置softInputMode
为adjustPan
,避免页面布局被键盘挤压:{ "pages": [ { "path": "pages/index/index", "style": { "app-plus": { "softInputMode": "adjustPan" } } } ] }
- 在