iOS 补充
This commit is contained in:
21
CHANGELOG.md
21
CHANGELOG.md
@@ -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
|
||||
|
||||
***
|
||||
|
||||
|
||||
@@ -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,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
),
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user