From b6ff9fe141cda13174d0f7cc98d303a27a0be198 Mon Sep 17 00:00:00 2001 From: Enbiya Olgun <78034913+NBA2K1@users.noreply.github.com> Date: Mon, 28 Apr 2025 21:03:41 +0200 Subject: [PATCH] Update custom_navigation_settings.dart No need for SingleChildScrollView, because ReorderableListView already is scrollable --- .../custom_navigation_settings.dart | 121 +++++++++--------- 1 file changed, 59 insertions(+), 62 deletions(-) diff --git a/lib/modules/more/settings/appearance/custom_navigation_settings.dart b/lib/modules/more/settings/appearance/custom_navigation_settings.dart index 5478cde9..9a4ca175 100644 --- a/lib/modules/more/settings/appearance/custom_navigation_settings.dart +++ b/lib/modules/more/settings/appearance/custom_navigation_settings.dart @@ -21,70 +21,67 @@ class _CustomNavigationSettingsState final hideItems = ref.watch(hideItemsStateProvider); return Scaffold( appBar: AppBar(title: Text(l10n.reorder_navigation)), - body: SingleChildScrollView( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 15), - child: ReorderableListView.builder( - buildDefaultDragHandles: false, - shrinkWrap: true, - itemCount: navigationOrder.length, - itemBuilder: (context, index) { - final navigation = navigationOrder[index]; - return Row( - key: Key('navigation_$navigation'), - children: [ - ReorderableDragStartListener( - index: index, - child: const Icon(Icons.drag_handle), + body: Padding( + padding: const EdgeInsets.symmetric(horizontal: 15), + child: ReorderableListView.builder( + buildDefaultDragHandles: false, + itemCount: navigationOrder.length, + itemBuilder: (context, index) { + final navigation = navigationOrder[index]; + return Row( + key: Key('navigation_$navigation'), + children: [ + ReorderableDragStartListener( + index: index, + child: const Icon(Icons.drag_handle), + ), + Expanded( + child: SwitchListTile( + key: Key(navigation), + dense: true, + value: !hideItems.contains(navigation), + onChanged: + [ + "/more", + "/browse", + "/history", + ].any((element) => element == navigation) + ? null + : (value) { + final temp = hideItems.toList(); + if (!value && !hideItems.contains(navigation)) { + temp.add(navigation); + } else if (value) { + temp.remove(navigation); + } + ref + .read(hideItemsStateProvider.notifier) + .set(temp); + }, + title: Text(navigationItems[navigation]!), ), - Expanded( - child: SwitchListTile( - key: Key(navigation), - dense: true, - value: !hideItems.contains(navigation), - onChanged: - [ - "/more", - "/browse", - "/history", - ].any((element) => element == navigation) - ? null - : (value) { - final temp = hideItems.toList(); - if (!value && !hideItems.contains(navigation)) { - temp.add(navigation); - } else if (value) { - temp.remove(navigation); - } - ref - .read(hideItemsStateProvider.notifier) - .set(temp); - }, - title: Text(navigationItems[navigation]!), - ), - ), - ], - ); - }, - onReorder: (oldIndex, newIndex) { - if (oldIndex < newIndex) { - final draggedItem = navigationOrder[oldIndex]; - for (var i = oldIndex; i < newIndex - 1; i++) { - navigationOrder[i] = navigationOrder[i + 1]; - } - navigationOrder[newIndex - 1] = draggedItem; - } else { - final draggedItem = navigationOrder[oldIndex]; - for (var i = oldIndex; i > newIndex; i--) { - navigationOrder[i] = navigationOrder[i - 1]; - } - navigationOrder[newIndex] = draggedItem; + ), + ], + ); + }, + onReorder: (oldIndex, newIndex) { + if (oldIndex < newIndex) { + final draggedItem = navigationOrder[oldIndex]; + for (var i = oldIndex; i < newIndex - 1; i++) { + navigationOrder[i] = navigationOrder[i + 1]; } - ref - .read(navigationOrderStateProvider.notifier) - .set(navigationOrder); - }, - ), + navigationOrder[newIndex - 1] = draggedItem; + } else { + final draggedItem = navigationOrder[oldIndex]; + for (var i = oldIndex; i > newIndex; i--) { + navigationOrder[i] = navigationOrder[i - 1]; + } + navigationOrder[newIndex] = draggedItem; + } + ref + .read(navigationOrderStateProvider.notifier) + .set(navigationOrder); + }, ), ), );