diff --git a/lib/screens/tasks/task_detail_screen.dart b/lib/screens/tasks/task_detail_screen.dart index e6e09be2..c324092e 100644 --- a/lib/screens/tasks/task_detail_screen.dart +++ b/lib/screens/tasks/task_detail_screen.dart @@ -2026,12 +2026,18 @@ class _TaskDetailScreenState extends ConsumerState ); } - return Column( - children: [ - detailsCard, - const SizedBox(height: 12), - Expanded(child: tabbedCard), - ], + // Mobile: make whole detail screen scrollable and give the + // tabbed area a fixed height so it can layout inside the + // scrollable column. + final mobileTabHeight = MediaQuery.of(context).size.height * 0.72; + return SingleChildScrollView( + child: Column( + children: [ + detailsCard, + const SizedBox(height: 12), + SizedBox(height: mobileTabHeight, child: tabbedCard), + ], + ), ); }, ), @@ -2102,7 +2108,7 @@ class _TaskDetailScreenState extends ConsumerState Container( margin: const EdgeInsets.only(bottom: 12), padding: const EdgeInsets.all(12), - constraints: const BoxConstraints(maxWidth: 520), + constraints: const BoxConstraints(minWidth: 160, maxWidth: 520), decoration: BoxDecoration( color: bubbleColor, borderRadius: BorderRadius.only( diff --git a/lib/screens/tickets/ticket_detail_screen.dart b/lib/screens/tickets/ticket_detail_screen.dart index 2a6702f8..b9f5b153 100644 --- a/lib/screens/tickets/ticket_detail_screen.dart +++ b/lib/screens/tickets/ticket_detail_screen.dart @@ -230,6 +230,7 @@ class _TicketDetailScreenState extends ConsumerState { margin: const EdgeInsets.only(bottom: 12), padding: const EdgeInsets.all(12), constraints: const BoxConstraints( + minWidth: 160, maxWidth: 520, ), decoration: BoxDecoration( @@ -409,12 +410,19 @@ class _TicketDetailScreenState extends ConsumerState { ); } - return Column( - children: [ - detailsCard, - const SizedBox(height: 12), - Expanded(child: messagesCard), - ], + // Mobile: make entire detail screen scrollable and give the + // messages area a fixed height so it can layout inside the + // scrollable column. + final mobileMessagesHeight = + MediaQuery.of(context).size.height * 0.72; + return SingleChildScrollView( + child: Column( + children: [ + detailsCard, + const SizedBox(height: 12), + SizedBox(height: mobileMessagesHeight, child: messagesCard), + ], + ), ); }, ),