v1.0.29+29
All checks were successful
Flutter Schmutter / build (push) Successful in 3m28s

This commit is contained in:
2025-06-06 11:29:01 +02:00
parent ee93ef576b
commit c7d996a402
4 changed files with 46 additions and 31 deletions

View File

@ -33,6 +33,10 @@ class _MediaGridState extends State<MediaGrid> {
});
}
void scrollToTop() {
_scrollController.jumpTo(0);
}
@override
Widget build(BuildContext context) {
final provider = Provider.of<MediaProvider>(context);
@ -48,7 +52,10 @@ class _MediaGridState extends State<MediaGrid> {
icon: Icon(
provider.random ? Icons.shuffle_on_outlined : Icons.shuffle,
),
onPressed: () => provider.toggleRandom(),
onPressed: () {
provider.toggleRandom();
_scrollController.jumpTo(0);
},
),
IconButton(
icon: const Icon(Icons.menu),
@ -78,6 +85,7 @@ class _MediaGridState extends State<MediaGrid> {
onChanged: (String? newValue) {
if (newValue != null) {
provider.setType(newValue);
_scrollController.jumpTo(0);
}
},
),
@ -96,6 +104,7 @@ class _MediaGridState extends State<MediaGrid> {
onChanged: (String? newValue) {
if (newValue != null) {
provider.setMode(provider.modes.indexOf(newValue));
_scrollController.jumpTo(0);
}
},
),
@ -125,6 +134,7 @@ class _MediaGridState extends State<MediaGrid> {
labelStyle: const TextStyle(color: Colors.white),
onDeleted: () {
provider.setTag(null);
_scrollController.jumpTo(0);
},
),
],
@ -133,7 +143,8 @@ class _MediaGridState extends State<MediaGrid> {
: null,
body: RefreshIndicator(
onRefresh: () async {
await provider.loadMedia(reload: true);
await provider.resetMedia();
_scrollController.jumpTo(0);
},
child: Consumer<MediaProvider>(
builder: (context, mediaProvider, child) {
@ -158,12 +169,17 @@ class _MediaGridState extends State<MediaGrid> {
final item = provider.mediaItems[index];
return InkWell(
onTap: () => Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DetailView(initialItemId: item.id),
),
),
onTap: () async {
bool test = await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DetailView(initialItemId: item.id),
),
);
if (test) {
scrollToTop();
}
},
child: Stack(
fit: StackFit.expand,
children: <Widget>[