docs(plans): 记录 K86.22 评论输入面板安全区修复
This commit is contained in:
1 parent
e6b5b904fc
commit
c7e5de5f99
2 files changed
+68
No files matched your search
@@ -0,0 +1,45 @@
|
||||
# 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`
|
||||
|
||||
## 实现计划
|
||||
|
||||
1. 面板 `SafeArea` 设置 `bottom: false`,不再消费 `MediaQuery.padding.bottom`。
|
||||
2. 保持 `Positioned(bottom: 0)`、白色 Material 铺到屏幕底部、顶部圆角 20。
|
||||
3. 键盘区域继续由内部 `Padding(bottom: _pinnedKeyboardInset)` 决定,内容区底部保持固定 12。
|
||||
4. 透明外部点击或发表成功仍为关闭入口;返回键/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 留痕;不安装真机,完成后等待用户验收。
|
||||
@@ -23569,3 +23569,26 @@ $ flutter test --no-pub
|
||||
```
|
||||
|
||||
解读:ReelShort 静态检查零告警,513 条测试全部通过。未安装真机,等待用户验收。
|
||||
|
||||
## 2026-10-21 ReelShort:K86.22 评论输入浮层去除底部安全区位移
|
||||
|
||||
- 功能分支:`fix/composer-safearea`,从 ReelShort develop `036bd29` 创建。
|
||||
- 功能提交:`3fbfa9a fix(player): 去除评论输入面板安全区导致的收键盘位移`。
|
||||
- develop 合并提交:`d39d8d4 merge: 合并 K86.22 评论输入面板安全区修复`,已推送 `036bd29..d39d8d4`。
|
||||
- 根因是输入面板 Material 内的 `SafeArea(top: false)` 会消费底部手势条 padding:键盘弹起时 `MediaQuery.padding.bottom` 为 0,收起后恢复 48px,SafeArea 因此把输入区额外顶高 48px。
|
||||
- 面板改为 `SafeArea(top: false, bottom: false)`,不再依赖 `MediaQuery.padding.bottom`;输入区位置仅由 `Padding(bottom: _pinnedKeyboardInset)` 和固定内容内边距 12 决定。
|
||||
- 保持白底 Material 铺到屏幕底部、顶部圆角 20、紧凑输入区、透明外部点击和发表成功关闭规则。
|
||||
- 新增测试模拟键盘弹起 `viewInsets.bottom=180/padding.bottom=0`,收起后 `viewInsets.bottom=0/padding.bottom=48`。旧实现红灯为 expected top `560.0`、actual `512.0`,上移 48px;修复后输入框 top、bottom、height 偏移均小于 0.1。
|
||||
|
||||
门禁原始输出:
|
||||
|
||||
```text
|
||||
$ dart analyze lib test
|
||||
Analyzing lib, test...
|
||||
No issues found!
|
||||
|
||||
$ flutter test --no-pub
|
||||
00:49 +514: All tests passed!
|
||||
```
|
||||
|
||||
解读:ReelShort 静态检查零告警,514 条测试全部通过。未安装真机,等待用户验收。
|
||||
Reference in new issue
Block a user