安卓 15/16 手机软键盘遮挡输入框、布局顶不上去?已解决:重新编译即可

« 返回首页

一句话结论:这是安卓 15 起「强制全面屏」新机制与老运行时的兼容问题,中文网编译服务 2026 年 10 月起已修复——不用改任何积木、属性、屏幕设置,把项目重新编译一次、装上新 APK 就好。

症状:你是不是遇到了这个?

典型场景(用户实测复现):

  • 布局:垂直布局(高度充满)里放一个滚动布局,滚动布局里放文本输入框;
  • 点文本输入框,软键盘弹出,键盘直接把输入框挡住,整个界面没有被顶上去,滚动布局怎么滚都露不出那个输入框;
  • 换安卓 10 的手机:一切正常;
  • 换 2025 年 8 月以前编译的老 APK(目标安卓 14):同一部安卓 16 手机上也正常。

只要「新编译的 APK + 安卓 15/16 手机 + 键盘遮挡内容」同时出现,就是本文这个问题。

Kodular、MIT App Inventor 官方版的用户在 Android 16(API 36)上也报告了同样现象(弹出键盘后界面被盖住、使用百分比尺寸的布局整体变形),根源相同。

一分钟自测

  1. 新建项目,搭最小复现布局:垂直布局(高度=充满)→ 滚动布局 → 文本输入框,再往滚动布局里放几个按钮把内容撑得比屏幕高;
  2. 编译 APK,装到安卓 15/16 手机;
  3. 点文本输入框:
    • 已修复的 APK:键盘弹出,可用区域自动变矮,滚动布局能把输入框滚到眼前,始终看得见;
    • 未修复的旧 APK:键盘浮在内容上,怎么滚输入框都藏在键盘后面。

想了解更多让内容可滚动的做法:允许屏幕滚动、允许布局滚动。

原因:安卓 15 起「强制全面屏」

通俗版:从安卓 15 开始,只要 App 的目标 SDK 是 35 及以上(各应用商店上架也已要求),系统就强制 App「边到边」(edge-to-edge)绘制——内容铺满整块屏幕,状态栏、导航栏、软键盘都浮在 App 上面。键盘弹出时,系统不再把窗口顶小,只是把「键盘有多高」这个数值告诉 App,需要 App 自己把内容区收上来。老版本运行时只处理了导航栏、没处理键盘,内容区不缩短,滚动布局自然滚不进去——这就是「顶不上去」。

技术版:targetSdkVersion ≥ 35 后 windowSoftInputMode=adjustResize 不再缩小窗口,键盘高度改经 WindowInsets(Type.ime())下发。框架在 AppInventorCompatActivity 的 insets 监听里把内容区底部内边距改为 max(导航栏高度, 键盘高度),键盘弹出、收起实时重算,布局随之压缩,滚动布局就能把输入框滚进可视区。

顺带一提:MIT 官方上游的同类修复用的是「导航栏+键盘」相加,键盘弹出时键盘上方会多出一条导航栏高的空隙;中文网取 max,严丝合缝,不会多出空条。

受影响范围速查

受影响的是 2025-08-20 至 2026-10-23 期间编译的 APK;更早的老 APK(目标安卓 14 及以前)不受影响。

手机系统 APK 编译时间/目标 表现
安卓 15 / 16 上述窗口期编译(目标 35) 键盘遮挡 ❌
安卓 15 / 16 2026-10-23 后重新编译 正常 ✅
安卓 15 / 16 2025-08 前的老 APK(目标 34 及以前) 正常 ✅
安卓 14 及以下手机 任意 正常 ✅

鸿蒙版、iOS 版不受影响——这是安卓系统独有的行为变化。

怎么解决

  1. 打开 www.fun123.cn,进入你的项目;
  2. 直接重新编译 APK(或 AAB);
  3. 卸掉手机上的旧版,装上新 APK,点文本输入框验证。

不需要改任何积木、属性、屏幕设置。用 AI 伴侣实时调试时如遇到同样遮挡,重新下载最新版伴侣再连。

常见问题

为什么安卓 10 的手机没事?

「强制全面屏」是安卓 15 才开始执行的机制;老系统上,键盘弹出时系统仍会按传统方式缩小窗口,所以一切照旧。

为什么以前编译的老 APK 也没事?

2025 年 8 月以前的 APK 目标是安卓 14,不触发强制全面屏。但目标 SDK 太低会被应用商店拒审,「一直用旧目标编译」不是长久之计。

Kodular、MIT 官方版也这样吗?

同样的机制,他们社区在 Android 16 上有同样的报告。中文网 2026 年 10 月已修复,重新编译即可。

键盘上方出现一条空白是怎么回事?

那是「导航栏+键盘相加」算法的现象,中文网实现取 max,不会出现。

和全屏设置有关系吗?

没有关系,不开全屏同样受影响。全屏设置见如何去掉顶部标题栏实现全屏。

相关阅读

文档反馈