iOS 补充

This commit is contained in:
Developer
2026-06-19 07:16:30 +08:00
parent 83720002e6
commit 8786abd59e
3 changed files with 35 additions and 8 deletions

View File

@@ -2,7 +2,26 @@
所有重要变更均记录于此文件。格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/)。
> 保留最近 10 个版本v6.89.1 ~ v6.94.3。更早版本v6.87.0 ~ v6.89.0)的特性已合并进软件特性功能文档,详见各版本条目。
> 保留最近 10 个版本v6.89.1 ~ v6.94.5。更早版本v6.87.0 ~ v6.89.0)的特性已合并进软件特性功能文档,详见各版本条目。
***
## [v6.94.5] - 2026-06-19
### 🐛 修复
#### 工作台设置页 Slider 报错No Material widget found
- **Issue: 工作台设置页打开即崩溃,报 "No Material widget found. Slider widgets require a Material widget ancestor"**`WorkbenchSettingsPage` 使用 `CupertinoPageScaffold`(无 Material 祖先),但 `_SliderTile` 使用 Material 组件 `Slider`,导致断言失败。
- **修复**:将 `Slider` 替换为 `CupertinoSlider`,符合项目规则"优先使用 Cupertino 组件",并使用 `ext.accent` 作为激活色保持主题一致
- **文件**lib/features/settings/presentation/workbench/workbench_settings_page.dart
#### 移动端横屏工作台布局空白问题
- **Issue: 移动端横屏工作台模式中栏左右两边有空白,要求缩短空白用来显示中栏页面**
- **根因1**:双栏模式中栏宽度被 `* 0.75` 缩放,导致中栏宽度不足,页面内容两侧出现空白
- **根因2**中栏内嵌页面HomePage/DiscoverPage 等)使用 `SafeArea(bottom: false)`,横屏时 `left`/`right` 默认为 `true`,会添加水平 padding 导致左右空白
- **修复1**:移除双栏模式 `* 0.75` 缩放,中栏使用完整宽度(与三栏模式一致)
- **修复2**`_buildMiddlePanel` 使用 `MediaQuery.removePadding` 移除水平 SafeArea padding避免横屏时左右空白
- **文件**lib/core/layout/workbench/workbench_layout.dart
***

View File

@@ -3,7 +3,7 @@
/// 创建时间: 2026-06-18
/// 更新时间: 2026-06-19
/// 作用: 微信PC式三栏工作台布局导航栏+中栏列表+右栏详情)
/// 上次更新: 右栏返回双按钮(pop+clear)拖拽clamp合并取min双栏注释修正构建失败移除无效条目改用canPop判断
/// 上次更新: 修复移动端横屏中栏左右空白问题;移除双栏模式 *0.75 缩放;中栏移除水平 SafeArea padding
/// ============================================================
import 'package:flutter/cupertino.dart';
@@ -162,12 +162,13 @@ class _WorkbenchLayoutState extends ConsumerState<WorkbenchLayout> {
],
);
} else {
// 双栏模式:中栏紧凑显示(宽度*0.75+ 分割条 + 右栏
// 双栏模式:中栏使用完整宽度(移除 *0.75 缩放,避免横屏空白浪费)
// 中栏宽度通过 _middleWidth 自适应,默认 _defaultMiddleWidth
contentArea = Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
SizedBox(
width: (_middleWidth ?? _defaultMiddleWidth) * 0.75,
width: _middleWidth ?? _defaultMiddleWidth,
child: middlePanel,
),
divider,
@@ -230,9 +231,15 @@ class _WorkbenchLayoutState extends ConsumerState<WorkbenchLayout> {
Widget _buildMiddlePanel() {
// 中栏显示当前 Tab 的一级页面HomePage/DiscoverPage/ProfilePage
// 通过 navigationShell 提供
// 移除水平 SafeArea padding避免横屏时左右出现空白
return Container(
color: Theme.of(context).colorScheme.surfaceContainerLowest,
child: widget.navigationShell,
child: MediaQuery.removePadding(
context: context,
removeLeft: true,
removeRight: true,
child: widget.navigationShell,
),
);
}

View File

@@ -1,9 +1,9 @@
/// ============================================================
/// 闲言APP — 工作台模式设置页面
/// 创建时间: 2026-06-18
/// 更新时间: 2026-06-18
/// 更新时间: 2026-06-19
/// 作用: 整合分屏/工作台相关设置为独立页面,扩展交互增强功能
/// 上次更新: 修复编译错误,对齐 AppThemeExtension/SplitViewState 字段名,使用 i18n 翻译键
/// 上次更新: 修复 Slider 缺少 Material 祖先报错,改用 CupertinoSlider 适配 CupertinoPageScaffold
/// ============================================================
import 'package:flutter/cupertino.dart';
@@ -396,11 +396,12 @@ class _SliderTile extends StatelessWidget {
const SizedBox(height: 2),
Text(subtitle,
style: TextStyle(fontSize: 13, color: ext.textHint)),
Slider(
CupertinoSlider(
value: value,
min: min,
max: max,
divisions: divisions,
activeColor: ext.accent,
onChanged: onChanged,
),
],