红阳
红阳
  • 发布:2026-06-09 18:34
  • 更新:2026-06-09 18:34
  • 阅读:72

【报Bug】galaxy s24 ultra升级到one ui8.5 input依旧造成页面被键盘顶起

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 10 专业版 版本号22H2 OS内部版本19045.6466

HBuilderX类型: 正式

HBuilderX版本号: 5.03

手机系统: Android

手机系统版本号: Android 16

手机厂商: 三星

手机机型: galaxy s24 ultra

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

【复现步骤】

  1. 在 uni-app 项目中创建一个包含 <input type="text" :adjust-position="false" />并且组件在页面底部的页面。
  2. pages.json 中为该页面配置 "softinputMode": "adjustPan" (甚至尝试过 "adjustNothing")。
  3. 使用三星 Galaxy S24 Ultra (Android 16 one ui8.5) 运行该应用。
  4. 点击输入框获取焦点,触发软键盘弹出。

预期结果:

【预期结果】
由于设置了 :adjust-position="false",软键盘弹出时应直接覆盖在页面上方,WebView 窗体保持原位不发生位移,页面内容不被挤压或上推。

实际结果:

【实际表现】
系统在键盘弹起时强制将整个页面向上平移,:adjust-position="false"softinputMode 的原生配置均失效。

bug描述:

【Bug描述】
Galaxy S24 Ultra 升级系统后,原本是没问题的,当 <input><textarea> 组件配置了 :adjust-position="false" 时,该属性完全失效。点击输入框弹出软键盘后,系统无视防上推指令,依然会将整个 WebView 页面向上平移顶起,导致页面布局错乱。Galaxy Z Flip4(android16、One UI8.0)和vivo x200s(android16)都是android16,是正常的

2026-06-09 18:34 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

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

从这份 bug 反馈来看,问题描述得比较清晰,关键信息是齐全的。

关于反馈内容的评审:

  1. BUG 描述:描述得很清楚,明确指出了问题机型(Galaxy S24 Ultra)、系统版本(Android 16, One UI 8.5)、问题表现(:adjust-position="false" 失效,页面被键盘顶起),并对比了同是 Android 16 的其他机型(Galaxy Z Flip4, vivo x200s)是正常的。这让排查方向非常明确,指向了特定厂商和系统的兼容性问题。
  2. 代码示例:反馈中给出了 <input type="text" :adjust-position="false" /> 的代码片段,这是核心配置。虽然没有完整页面代码,但对于这个级别的反馈来说已经足够说明问题。
  3. 复现步骤:步骤清晰,从创建页面、配置 pages.json 到在特定机型上操作,逻辑完整。根据这些信息,我们的测试人员完全可以尝试去复现。
  4. 预期结果:合理。设置 :adjust-position="false" 的目的就是为了阻止页面上推,这个预期是正确的。
  5. 实际结果:符合描述的现象。如果 adjust-position 确实失效,那么表现就是页面被强制顶起。
  6. 分类信息:包含了 HBuilderX 版本(正式版 5.03)、Vue 版本(Vue2)、手机系统平台及版本、设备机型等关键信息,符合要求。

关于 bug 是否成立的分析:

这个 bug 是成立的,而且是一个非常典型的兼容性问题。

  1. 问题定性:从知识库中的 input组件关于软键盘弹出的逻辑说明 可以看到,adjust-position 属性正是为了控制 webview 窗体是否上推而设计的。用户正确配置后,在特定系统(三星 One UI 8.5)上失效,这属于系统层面的行为异常,是软件需要适配的问题。

  2. 现有方案与局限:在知识库和社区中,可以看到很多关于键盘顶起页面的讨论和解决方案,例如:

    • 使用 softinputMode: "adjustResize":这个模式是挤压 webview 高度,而非上推,但可能会在部分安卓机上有闪现或布局问题。
    • 手动处理:如这篇 页面被软键盘顶起的解决方案 社区文章所述,通过监听键盘高度,手动用 CSS bottom 属性来调整输入框位置。但这是一种绕过方案,而非从根本上解决 adjust-position="false" 失效的问题。
  3. 知识库中的关联信息:优先知识库中有一条 nvue页面在部分ios系统上会被键盘上推页面,且键盘收回后也不复原 的记录,官方回复是“nvue 已不在维护,出现大的 bug,请提示用户使用最新的 uni-app x”。虽然用户反馈的是 vue 页面,但这表明当特定平台出现框架难以修复的底层键盘问题时,官方会建议迁移到更现代的架构。

综合建议:

这是一个需要官方进行适配修复的兼容性问题。直接原因是三星 Galaxy S24 Ultra 在升级到 One UI 8.5 (Android 16) 后,其系统 WebView 或输入法框架的行为发生了改变,导致 uni-app 框架的 adjust-position="false" 指令无法生效。

在官方修复此问题前,可以建议用户尝试以下临时替代方案:

  • 方案一(推荐尝试):在 pages.json 中配置 "softinputMode": "adjustResize",并调整页面布局以适应 webview 高度被挤压的情况。
  • 方案二(手动控制):继续使用 adjust-position="false"(即使它在此机型上失效),但通过监听 keyboardheightchange 事件获取键盘高度,手动计算并将输入框区域进行定位,以模拟不被顶起的效果。插件市场有一个 x-fixed-keyboard 插件,其思路就是处理这种场景,可以推荐用户参考或试用。
内容为 AI 生成,仅供参考

要回复问题请先登录注册