fix(app): account-switch data residue + empty-albums pull-to-refresh
- 换账号数据残留(用户报告):albumListProvider 非 autoDispose 且首页 IndexedStack 常驻——登出与登录成功两处显式 invalidate(任务库本就按账号 隔离键隔离,不受影响) - 空相册无法下拉刷新(用户报告):空态原本直接 return EmptyState 无 RefreshIndicator——被拉进相册后无法手动刷新;空态改入可滚动容器承载 下拉刷新(保留新建入口) - 397/397 全绿、analyze 0 Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -101,11 +101,23 @@ class AlbumListBody extends ConsumerWidget {
|
||||
onRetry: notifier.refresh,
|
||||
);
|
||||
}
|
||||
return EmptyState(
|
||||
icon: Icons.photo_library_outlined,
|
||||
title: l10n.albumsEmpty,
|
||||
actionLabel: l10n.albumCreate,
|
||||
onAction: () => AlbumsTab.openCreate(context, ref),
|
||||
// 空态也保留下拉刷新(被拉进相册后可手动刷新看到,2026-09-23 用户报告)。
|
||||
return RefreshIndicator(
|
||||
onRefresh: notifier.refresh,
|
||||
child: ListView(
|
||||
physics: const AlwaysScrollableScrollPhysics(),
|
||||
children: [
|
||||
SizedBox(
|
||||
height: MediaQuery.of(context).size.height * 0.5,
|
||||
child: EmptyState(
|
||||
icon: Icons.photo_library_outlined,
|
||||
title: l10n.albumsEmpty,
|
||||
actionLabel: l10n.albumCreate,
|
||||
onAction: () => AlbumsTab.openCreate(context, ref),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -147,7 +159,9 @@ class AlbumListBody extends ConsumerWidget {
|
||||
);
|
||||
}
|
||||
// 接近底部时预取下一页(loadMore 自带并发/末页守卫)。
|
||||
if (index >= rowCount - 2 && state.hasMore && !state.loadingMore) {
|
||||
if (index >= rowCount - 2 &&
|
||||
state.hasMore &&
|
||||
!state.loadingMore) {
|
||||
WidgetsBinding.instance.addPostFrameCallback(
|
||||
(_) => notifier.loadMore(),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user