docs(plans): 留痕 K71 首页导航安全区底色
This commit is contained in:
1 parent
b5f1699240
commit
0b2709339e
2 files changed
+77
-21
No files matched your search
+47
-21
@@ -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`;不改浅色模式观感与其它页面;完成后停住等待验收。
|
||||
@@ -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 构建成功。真机验收由用户执行。
|
||||
Reference in new issue
Block a user