feat: 新增精灵图贴纸支持及多项功能优化
新增精灵图贴纸类型及内置资源 优化分类图标使用SVG替代emoji 实现分页预加载功能 修复API基础地址与客户端一致 新增健康生活、国学经典服务模块 扩展Feed频道至44种并整合互动统计 修正多处UI显示问题及逻辑错误
This commit is contained in:
@@ -36,80 +36,86 @@ class AppShell extends StatelessWidget {
|
||||
systemNavigationBarIconBrightness: Brightness.light,
|
||||
systemNavigationBarDividerColor: Colors.black,
|
||||
),
|
||||
child: Scaffold(
|
||||
extendBody: true,
|
||||
body: Stack(children: [child, const ToolPanel()]),
|
||||
bottomNavigationBar: GlassBottomBar(
|
||||
tabs: const [
|
||||
GlassBottomBarTab(
|
||||
label: '首页',
|
||||
icon: Icon(CupertinoIcons.house),
|
||||
activeIcon: Icon(CupertinoIcons.house_fill),
|
||||
glowColor: Color(0xFFE8E8ED),
|
||||
),
|
||||
GlassBottomBarTab(
|
||||
label: '灵感',
|
||||
icon: Icon(CupertinoIcons.sparkles),
|
||||
activeIcon: Icon(CupertinoIcons.sparkles),
|
||||
glowColor: Color(0xFFE8E8ED),
|
||||
),
|
||||
GlassBottomBarTab(
|
||||
label: '我的',
|
||||
icon: Icon(CupertinoIcons.person),
|
||||
activeIcon: Icon(CupertinoIcons.person_fill),
|
||||
glowColor: Color(0xFFE8E8ED),
|
||||
),
|
||||
],
|
||||
selectedIndex: currentIndex,
|
||||
onTabSelected: (index) => _onTabTap(context, index),
|
||||
quality: GlassQuality.premium,
|
||||
selectedIconColor: ext.isDark ? Colors.white : ext.accent,
|
||||
unselectedIconColor: ext.isDark
|
||||
? Colors.white38
|
||||
: const Color(0xFFAEAEB2), // 未选中图标: 暗白38% / 浅灰
|
||||
barHeight: 56, // 底栏高度
|
||||
barBorderRadius: 28, // 底栏圆角 (药丸形)
|
||||
horizontalPadding: 16, // 水平内边距
|
||||
verticalPadding: 16, // 垂直内边距
|
||||
indicatorColor:
|
||||
ext
|
||||
.isDark // 指示器底色 (极淡)
|
||||
? Colors.white.withValues(alpha: 0.08)
|
||||
: Colors.black.withValues(alpha: 0.04),
|
||||
indicatorSettings: LiquidGlassSettings(
|
||||
// 选中项磨砂透镜
|
||||
thickness: 40, // 玻璃厚度 → 边框曲折线粗细
|
||||
blur: 25, // 模糊强度 → 磨砂质感
|
||||
refractiveIndex: 1.8, // 折射率 → 光线弯曲程度
|
||||
chromaticAberration: 1.2, // 色散 → 彩虹边缘宽度
|
||||
lightIntensity: 3.5, // 光照强度 → 边缘高光亮度
|
||||
ambientStrength: 1.2, // 环境光 → 整体亮度
|
||||
glassColor:
|
||||
child: PopScope(
|
||||
canPop: false,
|
||||
onPopInvokedWithResult: (didPop, _) {
|
||||
if (didPop) return;
|
||||
},
|
||||
child: Scaffold(
|
||||
extendBody: true,
|
||||
body: Stack(children: [child, const ToolPanel()]),
|
||||
bottomNavigationBar: GlassBottomBar(
|
||||
tabs: const [
|
||||
GlassBottomBarTab(
|
||||
label: '首页',
|
||||
icon: Icon(CupertinoIcons.house),
|
||||
activeIcon: Icon(CupertinoIcons.house_fill),
|
||||
glowColor: Color(0xFFE8E8ED),
|
||||
),
|
||||
GlassBottomBarTab(
|
||||
label: '灵感',
|
||||
icon: Icon(CupertinoIcons.sparkles),
|
||||
activeIcon: Icon(CupertinoIcons.sparkles),
|
||||
glowColor: Color(0xFFE8E8ED),
|
||||
),
|
||||
GlassBottomBarTab(
|
||||
label: '我的',
|
||||
icon: Icon(CupertinoIcons.person),
|
||||
activeIcon: Icon(CupertinoIcons.person_fill),
|
||||
glowColor: Color(0xFFE8E8ED),
|
||||
),
|
||||
],
|
||||
selectedIndex: currentIndex,
|
||||
onTabSelected: (index) => _onTabTap(context, index),
|
||||
quality: GlassQuality.premium,
|
||||
selectedIconColor: ext.isDark ? Colors.white : ext.accent,
|
||||
unselectedIconColor: ext.isDark
|
||||
? Colors.white38
|
||||
: const Color(0xFFAEAEB2), // 未选中图标: 暗白38% / 浅灰
|
||||
barHeight: 56, // 底栏高度
|
||||
barBorderRadius: 28, // 底栏圆角 (药丸形)
|
||||
horizontalPadding: 16, // 水平内边距
|
||||
verticalPadding: 16, // 垂直内边距
|
||||
indicatorColor:
|
||||
ext
|
||||
.isDark // 玻璃底色 → 静态可见度
|
||||
? const Color.from(alpha: 0.18, red: 1, green: 1, blue: 1)
|
||||
: const Color.from(alpha: 0.12, red: 1, green: 1, blue: 1),
|
||||
.isDark // 指示器底色 (极淡)
|
||||
? Colors.white.withValues(alpha: 0.08)
|
||||
: Colors.black.withValues(alpha: 0.04),
|
||||
indicatorSettings: LiquidGlassSettings(
|
||||
// 选中项磨砂透镜
|
||||
thickness: 40, // 玻璃厚度 → 边框曲折线粗细
|
||||
blur: 25, // 模糊强度 → 磨砂质感
|
||||
refractiveIndex: 1.8, // 折射率 → 光线弯曲程度
|
||||
chromaticAberration: 1.2, // 色散 → 彩虹边缘宽度
|
||||
lightIntensity: 3.5, // 光照强度 → 边缘高光亮度
|
||||
ambientStrength: 1.2, // 环境光 → 整体亮度
|
||||
glassColor:
|
||||
ext
|
||||
.isDark // 玻璃底色 → 静态可见度
|
||||
? const Color.from(alpha: 0.18, red: 1, green: 1, blue: 1)
|
||||
: const Color.from(alpha: 0.12, red: 1, green: 1, blue: 1),
|
||||
),
|
||||
glassSettings: LiquidGlassSettings(
|
||||
// 底板透明玻璃
|
||||
thickness: 30, // 玻璃厚度 → 边框曲折线粗细
|
||||
blur: 1.5, // 模糊强度 → 近透明
|
||||
refractiveIndex: 1.5, // 折射率 → 边缘弯曲
|
||||
chromaticAberration: 0.8, // 色散 → 彩虹边缘
|
||||
lightIntensity: 1.2, // 光照强度 → 边缘高光
|
||||
saturation: 1.0, // 饱和度 → 保持原色
|
||||
ambientStrength: 0.6, // 环境光 → 微弱
|
||||
glassColor:
|
||||
ext
|
||||
.isDark // 玻璃底色 → 极淡
|
||||
? const Color.from(alpha: 0.08, red: 1, green: 1, blue: 1)
|
||||
: const Color.from(alpha: 0.05, red: 1, green: 1, blue: 1),
|
||||
),
|
||||
magnification: 1.12, // 选中放大倍率 → 透镜感
|
||||
innerBlur: 1.5, // 选中内容内模糊 → 磨砂质感
|
||||
glowOpacity: 0.4, // 发光透明度 → 选中光晕
|
||||
glowBlurRadius: 24, // 发光模糊半径 → 光晕扩散
|
||||
glowSpreadRadius: 4, // 发光扩散半径 → 光晕范围
|
||||
),
|
||||
glassSettings: LiquidGlassSettings(
|
||||
// 底板透明玻璃
|
||||
thickness: 30, // 玻璃厚度 → 边框曲折线粗细
|
||||
blur: 1.5, // 模糊强度 → 近透明
|
||||
refractiveIndex: 1.5, // 折射率 → 边缘弯曲
|
||||
chromaticAberration: 0.8, // 色散 → 彩虹边缘
|
||||
lightIntensity: 1.2, // 光照强度 → 边缘高光
|
||||
saturation: 1.0, // 饱和度 → 保持原色
|
||||
ambientStrength: 0.6, // 环境光 → 微弱
|
||||
glassColor:
|
||||
ext
|
||||
.isDark // 玻璃底色 → 极淡
|
||||
? const Color.from(alpha: 0.08, red: 1, green: 1, blue: 1)
|
||||
: const Color.from(alpha: 0.05, red: 1, green: 1, blue: 1),
|
||||
),
|
||||
magnification: 1.12, // 选中放大倍率 → 透镜感
|
||||
innerBlur: 1.5, // 选中内容内模糊 → 磨砂质感
|
||||
glowOpacity: 0.4, // 发光透明度 → 选中光晕
|
||||
glowBlurRadius: 24, // 发光模糊半径 → 光晕扩散
|
||||
glowSpreadRadius: 4, // 发光扩散半径 → 光晕范围
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user