fix:持仓详情编辑,资讯下拉加载更多
This commit is contained in:
@@ -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),
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user