111
This commit is contained in:
@@ -4,13 +4,13 @@ import 'package:flutter_animate/flutter_animate.dart';
|
||||
import '../../core/theme/app_spacing.dart';
|
||||
import '../../core/theme/app_theme_extension.dart';
|
||||
|
||||
/// 资产卡片组件 - 用于显示资产总览
|
||||
/// 資產卡片組件 - 用於顯示資產總覽
|
||||
///
|
||||
/// 设计规则 ("The Kinetic Vault"):
|
||||
/// - 渐变背景: Neon Blue → Electric Purple
|
||||
/// - 圆角: xl (16px)
|
||||
/// - 无边框,使用渐变层次
|
||||
/// - 微妙阴影: 10% black, blur 10px
|
||||
/// 設計規則 ("The Kinetic Vault"):
|
||||
/// - 漸變背景: Neon Blue → Electric Purple
|
||||
/// - 圓角: xl (16px)
|
||||
/// - 無邊框,使用漸變層次
|
||||
/// - 微妙陰影: 10% black, blur 10px
|
||||
class AssetCard extends StatelessWidget {
|
||||
final String title;
|
||||
final String balance;
|
||||
@@ -23,7 +23,7 @@ class AssetCard extends StatelessWidget {
|
||||
|
||||
const AssetCard({
|
||||
super.key,
|
||||
this.title = '总资产',
|
||||
this.title = '總資產',
|
||||
required this.balance,
|
||||
this.subtitle,
|
||||
this.profit,
|
||||
@@ -40,7 +40,7 @@ class AssetCard extends StatelessWidget {
|
||||
final appColors = context.appColors;
|
||||
final cardGradient = gradient ?? appColors.assetGradient;
|
||||
|
||||
// 主题感知颜色 - 在渐变背景上使用 onPrimary
|
||||
// 主題感知顏色 - 在漸變背景上使用 onPrimary
|
||||
final primaryTextColor = colorScheme.onPrimary;
|
||||
final secondaryTextColor = colorScheme.onPrimary.withValues(alpha: 0.7);
|
||||
|
||||
@@ -63,7 +63,7 @@ class AssetCard extends StatelessWidget {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// 标题行
|
||||
// 標題行
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
@@ -80,7 +80,7 @@ class AssetCard extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
const SizedBox(height: AppSpacing.sm),
|
||||
// 余额 - 大标题
|
||||
// 餘額 - 大標題
|
||||
Text(
|
||||
balance,
|
||||
style: theme.textTheme.h1.copyWith(
|
||||
@@ -89,7 +89,7 @@ class AssetCard extends StatelessWidget {
|
||||
fontSize: 20,
|
||||
),
|
||||
),
|
||||
// 盈亏信息
|
||||
// 盈虧信息
|
||||
if (profit != null) ...[
|
||||
const SizedBox(height: AppSpacing.md),
|
||||
Row(
|
||||
@@ -101,13 +101,13 @@ class AssetCard extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 6),
|
||||
Text(
|
||||
'盈亏: $profit',
|
||||
'盈虧: $profit',
|
||||
style: theme.textTheme.small.copyWith(color: secondaryTextColor),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
// 子项
|
||||
// 子項
|
||||
if (items != null && items!.isNotEmpty) ...[
|
||||
const SizedBox(height: AppSpacing.lg),
|
||||
Row(
|
||||
@@ -143,7 +143,7 @@ class AssetCard extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
/// 资产子项
|
||||
/// 資產子項
|
||||
class AssetItem {
|
||||
final String label;
|
||||
final String value;
|
||||
@@ -154,12 +154,12 @@ class AssetItem {
|
||||
});
|
||||
}
|
||||
|
||||
/// 简洁资产卡片 - 用于列表中显示
|
||||
/// 簡潔資產卡片 - 用於列表中顯示
|
||||
///
|
||||
/// 设计规则:
|
||||
/// - 使用 surface 层次而非边框
|
||||
/// - 圆角: xl (16px)
|
||||
/// - 涨跌标签: 15% 透明度背景
|
||||
/// 設計規則:
|
||||
/// - 使用 surface 層次而非邊框
|
||||
/// - 圓角: xl (16px)
|
||||
/// - 漲跌標籤: 15% 透明度背景
|
||||
class AssetCardCompact extends StatelessWidget {
|
||||
final String title;
|
||||
final String balance;
|
||||
|
||||
@@ -3,12 +3,12 @@ import 'package:shadcn_ui/shadcn_ui.dart';
|
||||
import '../../core/theme/app_spacing.dart';
|
||||
import '../../core/theme/app_theme_extension.dart';
|
||||
|
||||
/// 币种卡片组件 - 用于显示币种信息
|
||||
/// 幣種卡片組件 - 用於顯示幣種信息
|
||||
///
|
||||
/// 设计规则:
|
||||
/// - 使用 surface 层次而非边框
|
||||
/// - 圆角: xl (16px) 卡片, sm (4px) 涨跌标签
|
||||
/// - 涨跌标签: 15% 透明度背景
|
||||
/// 設計規則:
|
||||
/// - 使用 surface 層次而非邊框
|
||||
/// - 圓角: xl (16px) 卡片, sm (4px) 漲跌標籤
|
||||
/// - 漲跌標籤: 15% 透明度背景
|
||||
class CoinCard extends StatelessWidget {
|
||||
final String code;
|
||||
final String name;
|
||||
@@ -39,7 +39,7 @@ class CoinCard extends StatelessWidget {
|
||||
onTap: onTap,
|
||||
child: Row(
|
||||
children: [
|
||||
// 图标 - 圆形
|
||||
// 圖標 - 圓形
|
||||
Container(
|
||||
width: 44,
|
||||
height: 44,
|
||||
@@ -59,7 +59,7 @@ class CoinCard extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
const SizedBox(width: AppSpacing.sm),
|
||||
// 名称
|
||||
// 名稱
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
@@ -77,7 +77,7 @@ class CoinCard extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
),
|
||||
// 涨跌幅 - Dynamic Chip
|
||||
// 漲跌幅 - Dynamic Chip
|
||||
Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 6),
|
||||
decoration: BoxDecoration(
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/// 自定义组件导出
|
||||
/// 自定義組件導出
|
||||
library components;
|
||||
|
||||
export 'coin_card.dart';
|
||||
|
||||
@@ -2,43 +2,43 @@ import 'package:flutter/material.dart';
|
||||
import '../../core/theme/app_spacing.dart';
|
||||
import '../../core/theme/app_theme_extension.dart';
|
||||
|
||||
/// GlassPanel - 实心背景面板
|
||||
/// GlassPanel - 實心背景面板
|
||||
///
|
||||
/// Material Design 3 风格的实心背景容器
|
||||
/// 用于卡片、弹窗、底部抽屉等需要清晰背景的容器
|
||||
/// Material Design 3 風格的實心背景容器
|
||||
/// 用於卡片、彈窗、底部抽屜等需要清晰背景的容器
|
||||
///
|
||||
/// 示例:
|
||||
/// ```dart
|
||||
/// GlassPanel(
|
||||
/// child: Text('内容'),
|
||||
/// child: Text('內容'),
|
||||
/// )
|
||||
/// ```
|
||||
class GlassPanel extends StatelessWidget {
|
||||
/// 子组件
|
||||
/// 子組件
|
||||
final Widget child;
|
||||
|
||||
/// 背景色,默认使用 surfaceContainer
|
||||
/// 背景色,默認使用 surfaceContainer
|
||||
final Color? backgroundColor;
|
||||
|
||||
/// 边框色
|
||||
/// 邊框色
|
||||
final Color? borderColor;
|
||||
|
||||
/// 圆角,默认特大圆角
|
||||
/// 圓角,默認特大圓角
|
||||
final BorderRadius? borderRadius;
|
||||
|
||||
/// 内边距
|
||||
/// 內邊距
|
||||
final EdgeInsetsGeometry? padding;
|
||||
|
||||
/// 外边距
|
||||
/// 外邊距
|
||||
final EdgeInsetsGeometry? margin;
|
||||
|
||||
/// 宽度
|
||||
/// 寬度
|
||||
final double? width;
|
||||
|
||||
/// 高度
|
||||
final double? height;
|
||||
|
||||
/// 是否显示边框
|
||||
/// 是否顯示邊框
|
||||
final bool showBorder;
|
||||
|
||||
const GlassPanel({
|
||||
@@ -88,33 +88,33 @@ class GlassPanel extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
/// GlassCard - 带实心背景的卡片
|
||||
/// GlassCard - 帶實心背景的卡片
|
||||
///
|
||||
/// 用于列表项、信息展示等场景
|
||||
/// 预设了常用配置,简化使用
|
||||
/// 用於列表項、信息展示等場景
|
||||
/// 預設了常用配置,簡化使用
|
||||
class GlassCard extends StatelessWidget {
|
||||
/// 子组件
|
||||
/// 子組件
|
||||
final Widget child;
|
||||
|
||||
/// 点击回调
|
||||
/// 點擊回調
|
||||
final VoidCallback? onTap;
|
||||
|
||||
/// 长按回调
|
||||
/// 長按回調
|
||||
final VoidCallback? onLongPress;
|
||||
|
||||
/// 内边距
|
||||
/// 內邊距
|
||||
final EdgeInsetsGeometry? padding;
|
||||
|
||||
/// 外边距
|
||||
/// 外邊距
|
||||
final EdgeInsetsGeometry? margin;
|
||||
|
||||
/// 圆角
|
||||
/// 圓角
|
||||
final BorderRadius? borderRadius;
|
||||
|
||||
/// 是否显示霓虹光效
|
||||
/// 是否顯示霓虹光效
|
||||
final bool showNeonGlow;
|
||||
|
||||
/// 霓虹光效颜色
|
||||
/// 霓虹光效顏色
|
||||
final Color? neonGlowColor;
|
||||
|
||||
const GlassCard({
|
||||
@@ -170,20 +170,20 @@ class GlassCard extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
/// GlassBottomSheet - 实心背景底部抽屉
|
||||
/// GlassBottomSheet - 實心背景底部抽屜
|
||||
///
|
||||
/// 用于弹出的底部面板
|
||||
/// 用於彈出的底部面板
|
||||
class GlassBottomSheet extends StatelessWidget {
|
||||
/// 子组件
|
||||
/// 子組件
|
||||
final Widget child;
|
||||
|
||||
/// 标题
|
||||
/// 標題
|
||||
final String? title;
|
||||
|
||||
/// 是否显示关闭按钮
|
||||
/// 是否顯示關閉按鈕
|
||||
final bool showCloseButton;
|
||||
|
||||
/// 内边距
|
||||
/// 內邊距
|
||||
final EdgeInsetsGeometry? padding;
|
||||
|
||||
const GlassBottomSheet({
|
||||
@@ -209,7 +209,7 @@ class GlassBottomSheet extends StatelessWidget {
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
// 顶部拖动条
|
||||
// 頂部拖動條
|
||||
Container(
|
||||
margin: const EdgeInsets.only(top: 12, bottom: 8),
|
||||
width: 40,
|
||||
@@ -219,7 +219,7 @@ class GlassBottomSheet extends StatelessWidget {
|
||||
borderRadius: BorderRadius.circular(2),
|
||||
),
|
||||
),
|
||||
// 标题栏
|
||||
// 標題欄
|
||||
if (title != null || showCloseButton)
|
||||
Padding(
|
||||
padding: EdgeInsets.fromLTRB(
|
||||
@@ -261,7 +261,7 @@ class GlassBottomSheet extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
),
|
||||
// 内容
|
||||
// 內容
|
||||
Padding(
|
||||
padding: padding ??
|
||||
EdgeInsets.fromLTRB(
|
||||
@@ -277,7 +277,7 @@ class GlassBottomSheet extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
/// 显示底部抽屉
|
||||
/// 顯示底部抽屜
|
||||
static Future<T?> show<T>({
|
||||
required BuildContext context,
|
||||
required Widget Function(BuildContext) builder,
|
||||
|
||||
@@ -2,12 +2,12 @@ import 'package:flutter/material.dart';
|
||||
import '../../core/theme/app_spacing.dart';
|
||||
import '../../core/theme/app_theme_extension.dart';
|
||||
|
||||
/// 渐变按钮组件 - 支持 CTA 渐变效果
|
||||
/// 漸變按鈕組件 - 支持 CTA 漸變效果
|
||||
///
|
||||
/// 设计规则:
|
||||
/// - 渐变方向: 135度 (primary → primary_container)
|
||||
/// - 圆角: xxl (24px / 1.5rem)
|
||||
/// - 无边框
|
||||
/// 設計規則:
|
||||
/// - 漸變方向: 135度 (primary → primary_container)
|
||||
/// - 圓角: xxl (24px / 1.5rem)
|
||||
/// - 無邊框
|
||||
class GradientButton extends StatelessWidget {
|
||||
final String text;
|
||||
final VoidCallback? onPressed;
|
||||
@@ -28,7 +28,7 @@ class GradientButton extends StatelessWidget {
|
||||
this.height = 48,
|
||||
});
|
||||
|
||||
/// CTA 按钮 - 使用主题渐变
|
||||
/// CTA 按鈕 - 使用主題漸變
|
||||
factory GradientButton.cta({
|
||||
Key? key,
|
||||
required String text,
|
||||
@@ -47,7 +47,7 @@ class GradientButton extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
/// 买入按钮 - 翡翠绿渐变
|
||||
/// 買入按鈕 - 翡翠綠漸變
|
||||
factory GradientButton.buy({
|
||||
Key? key,
|
||||
required String text,
|
||||
@@ -67,7 +67,7 @@ class GradientButton extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
/// 卖出按钮 - 红色渐变
|
||||
/// 賣出按鈕 - 紅色漸變
|
||||
factory GradientButton.sell({
|
||||
Key? key,
|
||||
required String text,
|
||||
@@ -93,7 +93,7 @@ class GradientButton extends StatelessWidget {
|
||||
final colorScheme = context.colors;
|
||||
final buttonGradient = gradient ?? appColors.ctaGradient;
|
||||
|
||||
// 主题感知颜色 - 在渐变背景上使用 onPrimary
|
||||
// 主題感知顏色 - 在漸變背景上使用 onPrimary
|
||||
final textColor = colorScheme.onPrimary;
|
||||
|
||||
return Container(
|
||||
@@ -145,11 +145,11 @@ class GradientButton extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
/// Ghost 按钮 - 次要操作
|
||||
/// Ghost 按鈕 - 次要操作
|
||||
///
|
||||
/// 设计规则:
|
||||
/// 設計規則:
|
||||
/// - Ghost Border: 15% opacity outline-variant
|
||||
/// - 圆角: xxl (24px)
|
||||
/// - 圓角: xxl (24px)
|
||||
/// - 主色文字
|
||||
class GhostButton extends StatelessWidget {
|
||||
final String text;
|
||||
|
||||
@@ -3,30 +3,30 @@ import '../../core/theme/app_color_scheme.dart';
|
||||
import '../../core/theme/app_spacing.dart';
|
||||
import '../../core/theme/app_theme_extension.dart';
|
||||
|
||||
/// NeonGlow - 霓虹光效组件
|
||||
/// NeonGlow - 霓虹光效組件
|
||||
///
|
||||
/// Material Design 3 风格的霓虹光效
|
||||
/// 用于按钮、卡片、图标等需要突出显示的元素
|
||||
/// Material Design 3 風格的霓虹光效
|
||||
/// 用於按鈕、卡片、圖標等需要突出顯示的元素
|
||||
///
|
||||
/// 光效类型:
|
||||
/// 光效類型:
|
||||
/// - Primary: 青色光效 (#72dcff)
|
||||
/// - Secondary: 紫色光效 (#dd8bfb)
|
||||
/// - Tertiary: 绿色光效 (#afffd1)
|
||||
/// - Error: 红色光效 (#ff716c)
|
||||
/// - Tertiary: 綠色光效 (#afffd1)
|
||||
/// - Error: 紅色光效 (#ff716c)
|
||||
class NeonGlow extends StatelessWidget {
|
||||
/// 子组件
|
||||
/// 子組件
|
||||
final Widget child;
|
||||
|
||||
/// 光效颜色
|
||||
/// 光效顏色
|
||||
final Color glowColor;
|
||||
|
||||
/// 模糊半径,默认 15.0
|
||||
/// 模糊半徑,默認 15.0
|
||||
final double blurRadius;
|
||||
|
||||
/// 扩散半径,默认 0.0
|
||||
/// 擴散半徑,默認 0.0
|
||||
final double spreadRadius;
|
||||
|
||||
/// 圆角
|
||||
/// 圓角
|
||||
final BorderRadius? borderRadius;
|
||||
|
||||
const NeonGlow({
|
||||
@@ -70,7 +70,7 @@ class NeonGlow extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
/// Tertiary 霓虹光效 (绿色)
|
||||
/// Tertiary 霓虹光效 (綠色)
|
||||
factory NeonGlow.tertiary({
|
||||
Key? key,
|
||||
required Widget child,
|
||||
@@ -86,7 +86,7 @@ class NeonGlow extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
/// Error 霓虹光效 (红色)
|
||||
/// Error 霓虹光效 (紅色)
|
||||
factory NeonGlow.error({
|
||||
Key? key,
|
||||
required Widget child,
|
||||
@@ -122,32 +122,32 @@ class NeonGlow extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
/// NeonButton - 带霓虹光效的按钮
|
||||
/// NeonButton - 帶霓虹光效的按鈕
|
||||
///
|
||||
/// 预设了常用配置,简化使用
|
||||
/// 預設了常用配置,簡化使用
|
||||
class NeonButton extends StatefulWidget {
|
||||
/// 按钮文本
|
||||
/// 按鈕文本
|
||||
final String text;
|
||||
|
||||
/// 点击回调
|
||||
/// 點擊回調
|
||||
final VoidCallback? onPressed;
|
||||
|
||||
/// 按钮类型
|
||||
/// 按鈕類型
|
||||
final NeonButtonType type;
|
||||
|
||||
/// 是否显示光效
|
||||
/// 是否顯示光效
|
||||
final bool showGlow;
|
||||
|
||||
/// 图标
|
||||
/// 圖標
|
||||
final IconData? icon;
|
||||
|
||||
/// 是否加载中
|
||||
/// 是否加載中
|
||||
final bool isLoading;
|
||||
|
||||
/// 按钮宽度
|
||||
/// 按鈕寬度
|
||||
final double? width;
|
||||
|
||||
/// 按钮高度,默认 48
|
||||
/// 按鈕高度,默認 48
|
||||
final double height;
|
||||
|
||||
const NeonButton({
|
||||
@@ -258,7 +258,7 @@ class _NeonButtonState extends State<NeonButton>
|
||||
}
|
||||
|
||||
LinearGradient? get _gradient {
|
||||
// 【优化】移除所有渐变效果,改为纯色背景,提升专业金融感
|
||||
// 【優化】移除所有漸變效果,改為純色背景,提升專業金融感
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -335,39 +335,39 @@ class _NeonButtonState extends State<NeonButton>
|
||||
}
|
||||
}
|
||||
|
||||
/// 按钮类型
|
||||
/// 按鈕類型
|
||||
enum NeonButtonType {
|
||||
/// 主要按钮 (青色)
|
||||
/// 主要按鈕 (青色)
|
||||
primary,
|
||||
|
||||
/// 次要按钮 (紫色)
|
||||
/// 次要按鈕 (紫色)
|
||||
secondary,
|
||||
|
||||
/// 成功按钮 (绿色)
|
||||
/// 成功按鈕 (綠色)
|
||||
tertiary,
|
||||
|
||||
/// 危险按钮 (红色)
|
||||
/// 危險按鈕 (紅色)
|
||||
error,
|
||||
|
||||
/// 边框按钮
|
||||
/// 邊框按鈕
|
||||
outline,
|
||||
}
|
||||
|
||||
/// NeonIcon - 带霓虹光效的图标
|
||||
/// NeonIcon - 帶霓虹光效的圖標
|
||||
class NeonIcon extends StatelessWidget {
|
||||
/// 图标
|
||||
/// 圖標
|
||||
final IconData icon;
|
||||
|
||||
/// 图标大小
|
||||
/// 圖標大小
|
||||
final double size;
|
||||
|
||||
/// 图标颜色
|
||||
/// 圖標顏色
|
||||
final Color color;
|
||||
|
||||
/// 光效颜色,默认使用图标颜色
|
||||
/// 光效顏色,默認使用圖標顏色
|
||||
final Color? glowColor;
|
||||
|
||||
/// 光效模糊半径
|
||||
/// 光效模糊半徑
|
||||
final double glowBlur;
|
||||
|
||||
const NeonIcon({
|
||||
|
||||
@@ -2,13 +2,13 @@ import 'package:flutter/material.dart';
|
||||
import '../../core/theme/app_color_scheme.dart';
|
||||
import '../../core/theme/app_spacing.dart';
|
||||
|
||||
/// 交易按钮组件 - 买入/卖出按钮
|
||||
/// 交易按鈕組件 - 買入/賣出按鈕
|
||||
///
|
||||
/// 设计规则:
|
||||
/// - 渐变按钮: 135度渐变
|
||||
/// - 圆角: xxl (24px / 1.5rem)
|
||||
/// - 买入: 翡翠绿渐变
|
||||
/// - 卖出: 红色渐变
|
||||
/// 設計規則:
|
||||
/// - 漸變按鈕: 135度漸變
|
||||
/// - 圓角: xxl (24px / 1.5rem)
|
||||
/// - 買入: 翡翠綠漸變
|
||||
/// - 賣出: 紅色漸變
|
||||
class TradeButton extends StatelessWidget {
|
||||
final bool isBuy;
|
||||
final String? coinCode;
|
||||
@@ -25,7 +25,7 @@ class TradeButton extends StatelessWidget {
|
||||
this.fullWidth = false,
|
||||
});
|
||||
|
||||
/// 买入按钮
|
||||
/// 買入按鈕
|
||||
const TradeButton.buy({
|
||||
super.key,
|
||||
this.coinCode,
|
||||
@@ -34,7 +34,7 @@ class TradeButton extends StatelessWidget {
|
||||
this.fullWidth = false,
|
||||
}) : isBuy = true;
|
||||
|
||||
/// 卖出按钮
|
||||
/// 賣出按鈕
|
||||
const TradeButton.sell({
|
||||
super.key,
|
||||
this.coinCode,
|
||||
@@ -48,10 +48,10 @@ class TradeButton extends StatelessWidget {
|
||||
final colorScheme = Theme.of(context).colorScheme;
|
||||
final gradient = isBuy ? AppColorScheme.buyGradient : AppColorScheme.sellGradient;
|
||||
final text = isBuy
|
||||
? '买入${coinCode != null ? ' $coinCode' : ''}'
|
||||
: '卖出${coinCode != null ? ' $coinCode' : ''}';
|
||||
? '買入${coinCode != null ? ' $coinCode' : ''}'
|
||||
: '賣出${coinCode != null ? ' $coinCode' : ''}';
|
||||
|
||||
// 主题感知颜色 - 在渐变背景上使用 onPrimary
|
||||
// 主題感知顏色 - 在漸變背景上使用 onPrimary
|
||||
final textColor = colorScheme.onPrimary;
|
||||
|
||||
return Container(
|
||||
@@ -103,7 +103,7 @@ class TradeButton extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
/// 交易按钮组 - 同时显示买入和卖出按钮
|
||||
/// 交易按鈕組 - 同時顯示買入和賣出按鈕
|
||||
class TradeButtonGroup extends StatelessWidget {
|
||||
final String? coinCode;
|
||||
final VoidCallback? onBuyPressed;
|
||||
|
||||
Reference in New Issue
Block a user