From 681cee09f5a8a11afce0213f35ce5996db4e63a2 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Wed, 27 Apr 2022 10:51:00 +0200 Subject: [PATCH] fix(ui): fix centerTitle for ThreadHeader --- .../lib/src/thread_header.dart | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/packages/stream_chat_flutter/lib/src/thread_header.dart b/packages/stream_chat_flutter/lib/src/thread_header.dart index d92c9305..fd6138fe 100644 --- a/packages/stream_chat_flutter/lib/src/thread_header.dart +++ b/packages/stream_chat_flutter/lib/src/thread_header.dart @@ -115,6 +115,7 @@ class ThreadHeader extends StatelessWidget implements PreferredSizeWidget { @override Widget build(BuildContext context) { + final effectiveCenterTitle = _getEffectiveCenterTitle(Theme.of(context)); final channelHeaderTheme = ChannelHeaderTheme.of(context); final defaultSubtitle = subtitle ?? @@ -161,6 +162,9 @@ class ThreadHeader extends StatelessWidget implements PreferredSizeWidget { width: 250, child: Column( mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: effectiveCenterTitle + ? CrossAxisAlignment.center + : CrossAxisAlignment.stretch, children: [ title ?? Text( @@ -187,4 +191,21 @@ class ThreadHeader extends StatelessWidget implements PreferredSizeWidget { @override final Size preferredSize; + + bool _getEffectiveCenterTitle(ThemeData theme) { + if (centerTitle != null) return centerTitle!; + if (theme.appBarTheme.centerTitle != null) { + return theme.appBarTheme.centerTitle!; + } + switch (theme.platform) { + case TargetPlatform.android: + case TargetPlatform.fuchsia: + case TargetPlatform.linux: + case TargetPlatform.windows: + return false; + case TargetPlatform.iOS: + case TargetPlatform.macOS: + return actions == null || actions!.length < 2; + } + } }