diff --git a/lib/src/channel_header.dart b/lib/src/channel_header.dart index 3d55c429..659a24eb 100644 --- a/lib/src/channel_header.dart +++ b/lib/src/channel_header.dart @@ -57,15 +57,19 @@ class ChannelHeader extends StatelessWidget implements PreferredSizeWidget { /// By default it calls [Navigator.pop] final VoidCallback onBackPressed; - /// Callback to call when pressing the header is tapped. + /// Callback to call when the header is tapped. final VoidCallback onTitleTap; + /// Callback to call when the image is tapped. + final VoidCallback onImageTap; + /// Creates a channel header ChannelHeader({ Key key, this.showBackButton = true, this.onBackPressed, this.onTitleTap, + this.onImageTap, }) : preferredSize = Size.fromHeight(kToolbarHeight), super(key: key); @@ -80,18 +84,16 @@ class ChannelHeader extends StatelessWidget implements PreferredSizeWidget { actions: [ Padding( padding: const EdgeInsets.only(right: 10.0), - child: Stack( - children: [ - Center( - child: ChannelImage(), - ), - ], + child: Center( + child: ChannelImage( + onTap: onImageTap, + ), ), ), ], centerTitle: true, title: InkWell( - onTap: () {}, + onTap: onTitleTap, child: Container( height: preferredSize.height, width: preferredSize.width, diff --git a/lib/src/channel_image.dart b/lib/src/channel_image.dart index 6ecbc861..7d674ac1 100644 --- a/lib/src/channel_image.dart +++ b/lib/src/channel_image.dart @@ -47,6 +47,7 @@ class ChannelImage extends StatelessWidget { Key key, this.channel, this.constraints, + this.onTap, }) : super(key: key); /// The channel to show the image of @@ -55,6 +56,9 @@ class ChannelImage extends StatelessWidget { /// The diameter of the image final BoxConstraints constraints; + /// The function called when the image is tapped + final VoidCallback onTap; + @override Widget build(BuildContext context) { final client = StreamChat.of(context); @@ -86,25 +90,36 @@ class ChannelImage extends StatelessWidget { decoration: BoxDecoration( color: StreamChatTheme.of(context).accentColor, ), - child: image != null - ? CachedNetworkImage( - imageUrl: image, - errorWidget: (_, __, ___) { - return Center( - child: Text( - snapshot.data?.containsKey('name') ?? false - ? snapshot.data['name'][0] - : '', - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.bold, - ), - ), - ); - }, - fit: BoxFit.cover, - ) - : SizedBox(), + child: Stack( + fit: StackFit.expand, + children: [ + image != null + ? CachedNetworkImage( + imageUrl: image, + errorWidget: (_, __, ___) { + return Center( + child: Text( + snapshot.data?.containsKey('name') ?? false + ? snapshot.data['name'][0] + : '', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + ), + ), + ); + }, + fit: BoxFit.cover, + ) + : SizedBox(), + Material( + color: Colors.transparent, + child: InkWell( + onTap: onTap, + ), + ), + ], + ), ), ); });