2.4 KiB
2.4 KiB
K86.22 评论输入浮层去除底部安全区位移实施计划
目标
修复 Android 收起评论输入键盘后,SafeArea 引入底部手势条 padding,导致输入区上移约 48px 的问题。输入区位置只由固定 _pinnedKeyboardInset 决定,键盘收起前后保持像素级一致。
根因
- 输入面板 Material 内使用
SafeArea(top: false)。 - 键盘可见时系统导航栏被 IME 覆盖,
MediaQuery.padding.bottom为 0。 - 键盘收起后手势条 padding 恢复,
SafeArea自动追加约 48px 底部内边距,把输入区顶高。 - K86.19 的白色实底和固定 12px 内容内边距本身正常,问题仅来自额外安全区。
范围
- ReelShort
lib/pages/player/widgets/comment_composer_sheet.dart - ReelShort
test/comment/drama_comments_sheet_test.dart - FruitServer
docs/plans/PROGRESS.md
实现计划
- 面板
SafeArea设置bottom: false,不再消费MediaQuery.padding.bottom。 - 保持
Positioned(bottom: 0)、白色 Material 铺到屏幕底部、顶部圆角 20。 - 键盘区域继续由内部
Padding(bottom: _pinnedKeyboardInset)决定,内容区底部保持固定 12。 - 透明外部点击或发表成功仍为关闭入口;返回键/IME 下箭头只收键盘。
测试计划
- 先新增失败测试:视口 390×844,键盘弹起时
viewInsets.bottom=180、padding.bottom=0,记录输入框全局矩形。 - 收起键盘时同时设置
viewInsets.bottom=0、padding.bottom=48,断言输入框 top、bottom、height 偏移均小于 0.1。 - 旧实现预期因 SafeArea 多出 48px 而失败;修复后运行完整评论面板测试、静态分析和全量 Flutter 测试。
风险与处理
- 关闭底部 SafeArea 后,输入内容依赖固定 12px 底部内边距;与 K86.19 白色实底填充一致,不再叠加系统手势条。
- 面板本身仍延伸到屏幕底部,视觉圆角和白底不受影响。
- 不改 KeyboardInsetNotifier、pinned 稳定捕获、关闭规则或评论列表布局。
Git
- ReelShort 从
develop创建fix/composer-safearea。 - 提交:
fix(player): 去除评论输入面板安全区导致的收键盘位移。 - 作者:
Zhou Weidong <502333560@qq.com>。 --no-ff合回develop并 push,不使用 force push,不执行git add -A。- FruitServer 追加 PROGRESS 留痕;不安装真机,完成后等待用户验收。