From 49d342b9e72209caddee81f48c33f2aab5511705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Gonz=C3=A1lez?= Date: Sun, 14 Sep 2025 17:01:20 +0200 Subject: [PATCH] style: adjust UnitDropdown width to prevent text wrapping with ellipsis Co-authored-by: aider (openrouter/deepseek/deepseek-r1:free) --- lib/ai/unit_dropdown.dart | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/lib/ai/unit_dropdown.dart b/lib/ai/unit_dropdown.dart index 54ef3fd..40774bc 100644 --- a/lib/ai/unit_dropdown.dart +++ b/lib/ai/unit_dropdown.dart @@ -21,9 +21,16 @@ class UnitDropdown extends StatelessWidget { final unitNames = corpus.unitsOfSameMagnitude(variable.unit); final availableUnits = unitNames.map((name) => corpus.get(name)).toList(); - return DropdownButton( + return SizedBox( + width: 200, // Constrain dropdown width + child: DropdownButton( value: selectedUnit ?? variable.unit, - selectedItemBuilder: (context) => availableUnits.map((unit) => Text(unit.symbol)).toList(), + selectedItemBuilder: (context) => availableUnits.map((unit) => + SizedBox( + width: 200, + child: Text(unit.symbol, overflow: TextOverflow.ellipsis), + ) + ).toList(), icon: const Icon(Icons.arrow_drop_down), elevation: 16, style: TextStyle(color: Theme.of(context).colorScheme.primary, fontSize: 14), @@ -32,9 +39,18 @@ class UnitDropdown extends StatelessWidget { items: availableUnits.map>((UnitSpec unit) { return DropdownMenuItem( value: unit.name, - child: Text("${unit.symbol} - ${unit.name}", style: const TextStyle(fontSize: 14)), + child: SizedBox( + width: 200, // Fixed width for all items + child: Text("${unit.symbol} - ${unit.name}", + style: const TextStyle(fontSize: 14), + overflow: TextOverflow.ellipsis, + ), + ), ); }).toList(), + dropdownPadding: const EdgeInsets.symmetric(vertical: 8), + menuMaxHeight: 400, + isExpanded: true, ); } }