docs(plans): 留痕 K71 首页导航安全区底色

This commit is contained in:
Zhou Weidong committed 2026-10-20 22:16:19 +08:00
1 parent b5f1699240
commit 0b2709339e
2 files changed
+77 -21

No files matched your search

+47 -21
View File
@@ -1,40 +1,66 @@
# INBOX
## [已处理] K70-A 开发默认地址改为公网 39.162.50.99
## [已处理] K71-A 首页深色底部导航补齐安全区底色
### 需求
### 现象
开发调试阶段默认连公网服务:`http://39.162.50.99:8081`(不带结尾斜杠,避免与请求路径拼接出双斜杠)。
首页 feed(深色)下,底部导航**下方**的系统安全区(iOS Home Indicator 条 / Android 手势条区域)
颜色与首页背景不一致:会透出窗口底色或模糊内容,看上去有一条浅色/发灰的边。
### 现状
### 根因
`lib/core/config/app_config.dart`:
`lib/core/widgets/app_bottom_nav.dart`:
- `devHostBaseUrl = 'http://192.168.31.187:8081'`(真机默认地址)
- `lanBaseUrl = 'http://127.0.0.1:8081'`(`adb reverse` 环回)
- `publicBaseUrl = 'http://39.162.50.99:8081'`
- `_probeCandidates = [lanBaseUrl, devHostBaseUrl, publicBaseUrl]`
```dart
ClipRect(
child: BackdropFilter(
filter: ImageFilter.blur(...),
child: SafeArea(
top: false,
child: Container(height: navHeight, color: 0xE6000000, ...),
),
),
)
```
### 改动
`SafeArea` 的底部内边距在 `Container` 之外,没有任何填充色;深色模式下导航条本身也是
`0xE6000000` 半透明叠在窗口底色上,所以「导航条 + 下方安全区」都跟首页的纯黑背景不一致。
1. `devHostBaseUrl` 改为 `'http://39.162.50.99:8081'`,同步更新上方文档注释
(说明当前默认指向公网,换网络时改这一行)。
2. `_probeCandidates` 去重(保留 `lanBaseUrl` 在前、其次 `devHostBaseUrl`、再 `publicBaseUrl`),
避免改完后重复探测同一地址;不改变探测顺序语义与超时。
3. 测试 `test/config/server_endpoint_test.dart` 第 66 行的字面量断言同步改为
`'http://39.162.50.99:8081'`;其余使用常量的断言无需改动。
### 目标
- 首页 feed(`dark: true`):底部导航条与下方安全区整体为纯黑 `Colors.black`,
与首页背景一致,不再透出模糊/白底。
- 浅色模式(剧场/创作/我的、其它页面):保持现有玻璃模糊 + 0.95 透明观感不变。
### 实现
`lib/core/widgets/app_bottom_nav.dart` 的 `build`:
- 深色分支:
- `ColoredBox(color: Colors.black)` 包住 `SafeArea(top: false, child: 导航条 Container)`
- 导航条 `Container` 的底色改为 `Colors.black`(不再 `0xE6000000`),保留顶部 `Colors.white12` 分隔线
- 不再使用 `BackdropFilter`(背后是窗口底色,模糊没有意义)
- 浅色分支:原样保留 `ClipRect + BackdropFilter + SafeArea + backgroundColor.withValues(alpha: 0.95)`
- `barKey` 仍挂在 `navHeight` 的导航条 `Container` 上,总高度在无安全区时为 `AppDimens.navHeight`
### 测试
- 现有 `test/home/app_bottom_nav_test.dart` 的高度断言(无安全区 = navHeight)必须继续通过
- 新增用例:`dark: true` 且 `MediaQuery` 底部安全区为 34 时,
1. `AppBottomNav` 总高度 = `navHeight + 34`
2. 最外层 `ColoredBox`(或等价背景)颜色为 `Colors.black`
### 验收
- `adb reverse` 存在时仍优先走 `127.0.0.1`;不存在时走公网。
- 门禁:`dart analyze lib test` 零告警、`flutter test` 全过、`flutter build apk --debug` 成功。
- 真机自查:首页底部导航与其下方手势条区域为同一种纯黑,无浅色边。
### Git
- 从 `develop` 拉 `chore/dev-default-public-host`。
- 提交:`chore(config): 开发默认地址改为公网 39.162.50.99`,作者 `Zhou Weidong <502333560@qq.com>`。
- `--no-ff` 合回 `develop` 并 push;`FruitServer/docs/plans/PROGRESS.md` 追加 K70-A 留痕。
- 从 `develop` 拉 `fix/home-nav-safe-area-color`。
- 提交:`fix(home): 首页深色底部导航补齐安全区底色`,作者 `Zhou Weidong <502333560@qq.com>`。
- `--no-ff` 合回 `develop` 并 push;`FruitServer/docs/plans/PROGRESS.md` 追加 K71-A 留痕。
### 约束
- 全程中文;禁止 `git add -A`;不改 `API_BASE_URL` 覆盖逻辑与运行时地址优先级;完成后停住等待验收。
- 全程中文;禁止 `git add -A`;不改浅色模式观感与其它页面;完成后停住等待验收。
+30
View File
@@ -22509,3 +22509,33 @@ Running Gradle task 'assembleDebug'...
```
解读:静态检查零告警,481 条测试全部通过,debug APK 构建成功。真机验收由用户执行。
## 2026-10-20 ReelShort:K71-A 首页深色底部导航补齐安全区底色
- 前置状态:K70-A 已完成并合并,develop 合并提交 `ac1202c`。
- 分支:`fix/home-nav-safe-area-color`
- 功能提交:`66e9062 fix(home): 首页深色底部导航补齐安全区底色`
- develop 合并提交:`1dbc3ac merge: 合并 K71-A 首页导航安全区底色`,已推送。
- 深色分支改为 `ColoredBox(Colors.black) + SafeArea(top: false) + 纯黑导航条 Container`,底部安全区与导航条统一为纯黑,移除无效的 `BackdropFilter`。
- `barKey` 仍挂在 `AppDimens.navHeight` 的导航条 Container 上;浅色分支继续保留 `ClipRect + BackdropFilter + SafeArea + 0.95` 背景,观感未改。
- 顶部 `Colors.white12` 分隔线保留;无安全区时总高度仍为 64。
测试:新增深色模式底部安全区 34 时总高 98、导航条自身 64、外层背景纯黑三条断言;既有浅色高度和首页深色导航断言同步保持通过。
门禁原始输出:
```text
$ dart analyze lib test
Analyzing lib, test...
No issues found!
$ flutter test
00:55 +482: All tests passed!
$ flutter build apk --debug
Running Gradle task 'assembleDebug'...
8.7s
✓ Built build/app/outputs/flutter-apk/app-debug.apk
```
解读:静态检查零告警,482 条测试全部通过,debug APK 构建成功。真机验收由用户执行。