This commit is contained in:
@ -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>[
|
||||
|
Reference in New Issue
Block a user