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; + } + } }