Commit 16a33f4

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-11-05 12:04:57
update DropDownSettingsTile to DropDownListTile
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 8eb606d
Changed files (4)
lib/components/settings_widgets.dart
@@ -283,41 +283,41 @@ class _InputSettingsTileState extends State<InputSettingsTile> {
   }
 }
 
-class DropDownSettingsTile<T> extends StatelessWidget {
+/// A ListTile that allows choosing from a dropdown.
+class DropDownListTile<T> extends StatelessWidget {
+  /// Creates a list tile that allows choosing an item from a dropdown.
+  ///
+  /// Using this is equivalent to using a [ListTile] with a trailing [DropdownButton].
+  const DropDownListTile({
+    required this.title,
+    required this.value,
+    required this.onChanged,
+    required this.items,
+    this.leading,
+    this.subtitle,
+    super.key});
+  
   final Widget title;
+  final Widget? subtitle;
   final Widget? leading;
-  final Widget? description;
-  final bool disabled;
 
   final T value;
   final List<DropdownMenuItem<T>> items;
   final void Function(T? value) onChanged;
 
-
-  const DropDownSettingsTile({required this.title, required this.value,
-    required this.onChanged, required this.items, this.disabled = false, this.leading, this.description, super.key});
-
   @override
   Widget build(BuildContext context) {
-    return SettingsTile(
+    return ListTile(
       title: title,
-      description: description,
+      subtitle: subtitle,
       leading: leading,
-      disabled: disabled,
-      onPressed: (BuildContext context) {  },
-      trailing: Row(
-        children: [
-          DropdownButton<T>(
-            value: value,
-            items: items,
-            onChanged: onChanged,
-          ),
-          const SizedBox(width: 15,)
-        ],
+      trailing: DropdownButton<T>(
+        value: value,
+        items: items,
+        onChanged: onChanged,
       ),
     );
   }
-
 }
 
 class SettingsSection extends StatelessWidget {
lib/screens/subsettings/export_import_screen.dart
@@ -56,7 +56,7 @@ class ExportImportScreen extends StatelessWidget {
                     settings.exportAfterEveryEntry = value;
                   },
               ),
-              DropDownSettingsTile<ExportFormat>(
+              DropDownListTile<ExportFormat>(
                 key: const Key('exportFormat'),
                 title: Text(localizations.exportFormat),
                 value: settings.exportFormat,
lib/screens/settings.dart
@@ -52,7 +52,7 @@ class SettingsPage extends StatelessWidget {
                   }
                 },
               ),
-              DropDownSettingsTile<ThemeMode>(
+              DropDownListTile<ThemeMode>(
                 key: const Key('theme'),
                 leading: const Icon(Icons.brightness_4),
                 title: Text(localizations.theme),
@@ -71,7 +71,7 @@ class SettingsPage extends StatelessWidget {
                 onMainColorChanged: (color) => settings.accentColor = color,
                 initialColor: settings.accentColor,
                 title: Text(localizations.accentColor)),
-              DropDownSettingsTile<Locale?>(
+              DropDownListTile<Locale?>(
                 key: const Key('language'),
                 leading: const Icon(Icons.language),
                 title: Text(localizations.language),
lib/main.dart
@@ -88,6 +88,7 @@ class AppRoot extends StatelessWidget {
         localizationsDelegates: const [
           AppLocalizations.delegate,
           GlobalMaterialLocalizations.delegate,
+          GlobalCupertinoLocalizations.delegate,
           GlobalWidgetsLocalizations.delegate,
         ],
         supportedLocales: AppLocalizations.supportedLocales,