优化编辑之后回到第一页的问题

This commit is contained in:
DelLevin-Home
2026-07-05 14:31:30 +08:00
parent 6dd2014f1b
commit 2f926dfdb5
7 changed files with 59 additions and 5 deletions

View File

@@ -1147,7 +1147,7 @@ class _MovieDetailPageState extends State<MovieDetailPage> {
void _navigateToEdit(BuildContext context) {
final provider = context.read<AppProvider>();
Navigator.pushNamed(context, '/movie-form', arguments: widget.movie).then((_) {
provider.setEditRefresh();
provider.setEditRefresh(widget.movie.id);
provider.loadMovies();
});
}

View File

@@ -74,6 +74,20 @@ class _MovieTabPageState extends State<MovieTabPage> {
final layoutChanged = provider.movieLayoutStyle != _prevLayoutStyle;
final countChanged = provider.movies.length != _prevMovieCount;
final editRefreshed = provider.editRefreshCounter > _lastEditRefreshCounter;
if (editRefreshed && provider.lastEditedItemId != null) {
// 就地更新被编辑的条目,不重置分页
_lastEditRefreshCounter = provider.editRefreshCounter;
_prevMovieCount = provider.movies.length;
final editedId = provider.lastEditedItemId!;
final idx = _items.indexWhere((m) => m.id == editedId);
if (idx != -1) {
final updated = provider.movies.where((m) => m.id == editedId).firstOrNull;
if (updated != null) {
setState(() { _items[idx] = updated; });
}
}
return;
}
if (statusChanged || layoutChanged || countChanged || editRefreshed) {
_prevLayoutStyle = provider.movieLayoutStyle;
_prevMovieCount = provider.movies.length;