2***@qq.com
2***@qq.com
  • 发布:2026-05-11 17:23
  • 更新:2026-05-11 17:24
  • 阅读:15

【报Bug】:adjust-position="false" 会失效

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10

HBuilderX类型: 正式

HBuilderX版本号: 5.05

手机系统: 全部

手机厂商: 华为

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

小米14,apple15

操作步骤:

重复单击输入框拉起键盘

预期结果:

键盘会覆盖页面

实际结果:

输入框有时候键盘会顶起页面,有时候会覆盖页面

bug描述:

<textarea  
            ref="chatTextarea"  
            v-model="chatMsg"  
            :cursor="cursorPosition"  
            :focus="needFocus"  
            maxlength="-1"  
            confirm-type="send"  
            style="caret-color: #07c160"  
            :show-confirm-bar="false"  
            :adjust-position="false"  
            auto-height  
            disable-default-padding  
            placeholder="聊点什么吧..."  
></textarea>

为什么 :adjust-position="false" 有时候会失效,小米14最明显,90%会失效。自从编辑器更新到5.05后,别的手机(偶现)也开始出现这个问题,包括apple14、vivo等

表现为,点击输入框有时候键盘会顶起页面,有时候会覆盖页面!!!

补充:无X5内核,没有设置softinputMode属性

2026-05-11 17:23 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

感谢您提交这个 bug 反馈,我是 DCloud 的官方人员。我对您反馈的关于 textarea 组件 adjust-position="false" 属性失效的问题进行了评审,以下是详细的分析和结论。

1. 反馈内容完整性分析

您的反馈内容整体上是比较完整和清晰的,具体来看:

  • BUG 描述:描述非常详细。您不仅说明了问题现象(键盘时而顶起页面,时而覆盖页面),还提供了关键的版本信息(HBuilderX 5.05 后开始出现),指出了高频复现机型(小米14),并排除了 X5 内核和 softinputMode 属性的干扰。这让问题的定位范围缩小了很多,我们能看懂您的问题。
  • 代码示例:提供的 textarea 代码片段完整,包含了 :adjust-position="false" 等所有相关属性,格式规范。
  • 复现步骤:“重复单击输入框拉起键盘”这是一个简单且可操作的步骤。结合您的描述,我们能够理解如何尝试复现此问题。
  • 预期结果与实际结果:预期结果是“键盘会覆盖页面”,这是 adjust-position="false" 属性的标准行为,您的预期是合理的。实际结果是“输入框有时候键盘会顶起页面,有时候会覆盖页面”,这种不稳定的表现确实是一个异常现象,而不是误报。
  • 分类信息:版本信息(HBuilderX 5.05)、运行平台(全部)、Vue 版本(Vue2)等关键分类信息都已提供,非常完整。

2. Bug 是否成立的分析

根据知识库中的信息,此 Bug 成立,并且是一个已知问题。以下是具体依据:

  • 官方文档明确说明:在 textarea 组件文档 中明确提到,adjust-position 属性用于控制“键盘弹起时,是否自动上推页面”。将该属性设置为 false 时,预期的行为就是键盘弹出时覆盖在页面上方,而不是将页面上推。您反馈的现象与此预期不符。

  • 社区存在多起相似反馈:在 DCloud 问答社区中,已有多位开发者反馈了在不同版本、不同机型上遇到的相同问题,例如:

    这说明该问题并非个例,是一个在特定版本和特定机型上稳定复现的缺陷。

  • 已知的 X5 内核适配问题:需要特别注意的是,官方文档 X5 内核适配问题 中记录了一个已知问题:“目前已知 TBS45738版本更新后会导致 uniapp vue页面的input组件adjust-position=false失效”。虽然您声明“无X5内核”,但这也表明 adjust-position 的失效与浏览器内核/系统 WebView 的实现强相关。您提到 HBuilderX 5.05 更新后多款手机开始出现此问题,很可能与新版内置 WebView 或系统更新后的兼容性有关。

3. 概念问题排查

您的问题描述清晰,并已主动排除了 softinputMode 和 X5 内核的干扰,没有基本的概念性错误。

结论与建议

综上所述,您反馈的是一个真实存在的、由特定版本或系统 WebView 兼容性引发的 Bug。由于该问题与底层内核相关,目前官方尚未提供完美的统一解决方案。

针对您的情况,可以尝试以下临时方案:

  • 方案一:使用 nvue 页面:根据 X5 内核适配问题的说明,该问题在 nvue 页面下表现正常。您可以考虑将聊天页面重构为 nvue 页面。注意,nvue 的开发方式与 vue 页面有一些差异。
  • 方案二:手动控制页面位移:放弃依赖 adjust-position 属性,改为监听 @keyboardheightchange 事件,手动获取键盘高度,然后通过调整页面容器的 transform: translateY()bottom 等样式来实现输入框跟随键盘移动的效果。这种方式逻辑完全由开发者控制,可以规避底层兼容性问题,但实现较为复杂。
  • 方案三:尝试插件市场方案:可以在 DCloud 插件市场 搜索 "keyboard" 或 "chat input" 等关键词,查找是否有第三方插件提供了解决此类键盘兼容性问题的方案。

我们会将此问题持续关注并推动修复。再次感谢您的详细反馈,这对我们改进产品非常重要。

内容为 AI 生成,仅供参考

要回复问题请先登录注册