fix:持仓详情编辑,资讯下拉加载更多

This commit is contained in:
jingyun
2026-06-22 11:36:09 +08:00
parent 08023aff82
commit ab99010306
15 changed files with 1504 additions and 186 deletions
+44 -6
View File
@@ -2,6 +2,8 @@ import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import '../../features/assets/presentation/asset_add_page.dart';
import '../../features/assets/presentation/asset_edit_page.dart';
import '../../features/assets/presentation/assets_page.dart';
import '../../features/assets/presentation/holding_detail_page.dart';
import '../../features/auth/presentation/delete_account_page.dart';
@@ -24,6 +26,8 @@ import 'tab_shell.dart';
abstract final class AppRoutes {
static const assets = '/assets';
static const assetAdd = '/assets/add';
static const assetEdit = '/assets/edit';
static const market = '/market';
static const marketKline = '/market/kline';
static const news = '/news';
@@ -93,8 +97,19 @@ final routerProvider = Provider<GoRouter>((ref) {
),
GoRoute(
path: AppRoutes.assetDetail,
builder: (ctx, s) =>
HoldingDetailPage(id: s.uri.queryParameters['id']),
builder: (ctx, s) => HoldingDetailPage(id: s.uri.queryParameters['id']),
),
GoRoute(
path: AppRoutes.assetAdd,
pageBuilder: (ctx, s) =>
_rightToLeftPage(state: s, child: const AssetAddPage()),
),
GoRoute(
path: AppRoutes.assetEdit,
pageBuilder: (ctx, s) => _rightToLeftPage(
state: s,
child: AssetEditPage(id: s.uri.queryParameters['id'] ?? ''),
),
),
GoRoute(
path: AppRoutes.marketKline,
@@ -223,10 +238,33 @@ CustomTransitionPage<T> _bottomUpPage<T>({
begin: const Offset(0, 0.08),
end: Offset.zero,
).animate(curved),
child: FadeTransition(
opacity: curved,
child: pageChild,
),
child: FadeTransition(opacity: curved, child: pageChild),
);
},
);
}
CustomTransitionPage<T> _rightToLeftPage<T>({
required GoRouterState state,
required Widget child,
}) {
return CustomTransitionPage<T>(
key: state.pageKey,
transitionDuration: const Duration(milliseconds: 260),
reverseTransitionDuration: const Duration(milliseconds: 220),
child: child,
transitionsBuilder: (context, animation, secondaryAnimation, pageChild) {
final curved = CurvedAnimation(
parent: animation,
curve: Curves.easeOutCubic,
reverseCurve: Curves.easeInCubic,
);
return SlideTransition(
position: Tween<Offset>(
begin: const Offset(1, 0),
end: Offset.zero,
).animate(curved),
child: FadeTransition(opacity: curved, child: pageChild),
);
},
);
+14 -14
View File
@@ -161,20 +161,20 @@ class _TabButton extends StatelessWidget {
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
if (selected)
Container(
width: 22,
height: 2.5,
margin: const EdgeInsets.only(bottom: 6),
decoration: BoxDecoration(
color: cs.primary,
borderRadius: const BorderRadius.vertical(
bottom: Radius.circular(3),
),
),
)
else
const SizedBox(height: 8.5),
// if (selected)
// Container(
// width: 22,
// height: 2.5,
// margin: const EdgeInsets.only(bottom: 6),
// decoration: BoxDecoration(
// color: cs.primary,
// borderRadius: const BorderRadius.vertical(
// bottom: Radius.circular(3),
// ),
// ),
// )
// else
// const SizedBox(height: 8.5),
Icon(icon, size: 22, color: color),
const SizedBox(height: 4),
Text(