From 0f6c388940fbd718ed512e3e0b00b6121252029f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 26 Sep 2026 14:34:47 +0200 Subject: [PATCH] fixed overflowing account name and dropdowns in settings --- .../settings/sections/account_section.dart | 17 ++++++---- .../widgets/settings_dropdown_tile.dart | 32 +++++++++++++++---- 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/lib/view/pages/settings/sections/account_section.dart b/lib/view/pages/settings/sections/account_section.dart index 797bc93..5b82b30 100644 --- a/lib/view/pages/settings/sections/account_section.dart +++ b/lib/view/pages/settings/sections/account_section.dart @@ -136,14 +136,17 @@ class _AccountSectionState extends State { crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - Text( - displayName ?? username, - style: const TextStyle( - fontSize: 20, - fontWeight: FontWeight.w600, + FittedBox( + fit: BoxFit.scaleDown, + alignment: AlignmentDirectional.centerStart, + child: Text( + displayName ?? username, + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.w600, + ), + maxLines: 1, ), - maxLines: 2, - overflow: TextOverflow.ellipsis, ), if (displayName != null) ...[ const SizedBox(height: 2), diff --git a/lib/view/pages/settings/widgets/settings_dropdown_tile.dart b/lib/view/pages/settings/widgets/settings_dropdown_tile.dart index 8500856..586219a 100644 --- a/lib/view/pages/settings/widgets/settings_dropdown_tile.dart +++ b/lib/view/pages/settings/widgets/settings_dropdown_tile.dart @@ -32,18 +32,21 @@ class SettingsDropdownTile extends StatelessWidget { trailing: DropdownButton( value: value, icon: const Icon(Icons.arrow_drop_down), + alignment: AlignmentDirectional.centerEnd, + selectedItemBuilder: (context) => options + .map( + (e) => Align( + alignment: AlignmentDirectional.centerEnd, + child: _optionRow(e), + ), + ) + .toList(), items: options .map( (e) => DropdownMenuItem( value: e, enabled: e != value, - child: Row( - children: [ - Icon(optionIcon(e)), - const SizedBox(width: 10), - Text(optionLabel(e)), - ], - ), + child: _optionRow(e), ), ) .toList(), @@ -53,4 +56,19 @@ class SettingsDropdownTile extends StatelessWidget { ), ); } + + Widget _optionRow(T e) => Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(optionIcon(e)), + const SizedBox(width: 10), + Flexible( + child: Text( + optionLabel(e), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ); }