Commit 16a33f4
Changed files (4)
lib
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,