From 93e8e7859196f9008f2063db0ede689725a470df Mon Sep 17 00:00:00 2001 From: Simon Ding Date: Sat, 10 Aug 2024 17:55:56 +0800 Subject: [PATCH] ui: improve external link display --- ui/lib/widgets/detail_card.dart | 55 ++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 18 deletions(-) diff --git a/ui/lib/widgets/detail_card.dart b/ui/lib/widgets/detail_card.dart index 5e33f29..a6acd6d 100644 --- a/ui/lib/widgets/detail_card.dart +++ b/ui/lib/widgets/detail_card.dart @@ -113,29 +113,48 @@ class _DetailCardState extends ConsumerState { label: Text( "${(widget.details.limiter!.sizeMin).readableFileSize()} - ${(widget.details.limiter!.sizeMax).readableFileSize()}")) : const SizedBox(), - Chip( - clipBehavior: Clip.hardEdge, - shape: ContinuousRectangleBorder( - borderRadius: BorderRadius.circular(100.0)), - padding: EdgeInsets.all(0), - label: InkWell( - child: Text("TMDB"), - onTap: () => launchUrl(url), - ), - ), - isBlank(widget.details.imdbid) - ? SizedBox() - : Chip( + MenuAnchor( + style: MenuStyle(alignment: Alignment.bottomRight), + menuChildren: [ + ActionChip.elevated( + onPressed: () => launchUrl(url), + clipBehavior: Clip.hardEdge, + backgroundColor: Colors.indigo[700], + shape: ContinuousRectangleBorder( + borderRadius: + BorderRadius.circular(100.0)), + padding: EdgeInsets.all(0), + label: Text("TMDB")), + isBlank(widget.details.imdbid) + ? SizedBox() + : ActionChip.elevated( + onPressed: () => launchUrl(imdbUrl), + backgroundColor: Colors.indigo[700], + clipBehavior: Clip.hardEdge, + shape: ContinuousRectangleBorder( + borderRadius: + BorderRadius.circular(100.0)), + padding: EdgeInsets.all(0), + label: Text("IMDB"), + ) + ], + builder: (context, controller, child) { + return ActionChip.elevated( + onPressed: () { + if (controller.isOpen) { + controller.close(); + } else { + controller.open(); + } + }, clipBehavior: Clip.hardEdge, shape: ContinuousRectangleBorder( borderRadius: BorderRadius.circular(100.0)), padding: EdgeInsets.all(0), - label: InkWell( - child: Text("IMDB"), - onTap: () => launchUrl(imdbUrl), - ), - ) + label: Text("外部链接")); + }, + ), ], ), const Text("", style: TextStyle(height: 1)),