From 72a59384b9041874cc91f1250e71978a6723d155 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Sat, 7 Sep 2024 10:46:55 +0800 Subject: [PATCH] opt: reply pic showing --- lib/common/widgets/badge.dart | 2 +- lib/common/widgets/imageview.dart | 31 +++++++++++++------ lib/common/widgets/nine_grid_view.dart | 3 +- .../video/detail/introduction/controller.dart | 2 +- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/lib/common/widgets/badge.dart b/lib/common/widgets/badge.dart index 9db23e09..34d042aa 100644 --- a/lib/common/widgets/badge.dart +++ b/lib/common/widgets/badge.dart @@ -50,7 +50,7 @@ class PBadge extends StatelessWidget { } EdgeInsets paddingStyle = - const EdgeInsets.symmetric(vertical: 1, horizontal: 6); + const EdgeInsets.symmetric(vertical: 1, horizontal: 3); double fontSize = 11; BorderRadius br = BorderRadius.circular(4); diff --git a/lib/common/widgets/imageview.dart b/lib/common/widgets/imageview.dart index 027ba4f0..7aa729ef 100644 --- a/lib/common/widgets/imageview.dart +++ b/lib/common/widgets/imageview.dart @@ -1,5 +1,6 @@ import 'dart:math'; +import 'package:PiliPalaX/common/widgets/badge.dart'; import 'package:PiliPalaX/common/widgets/network_img_layer.dart'; import 'package:PiliPalaX/common/widgets/nine_grid_view.dart'; import 'package:PiliPalaX/pages/preview/view.dart'; @@ -23,6 +24,8 @@ Widget image( ? 2 * imageWidth : imageWidth; imageHeight = imageWidth * min(ratioHW, maxRatio); + } else if (picArr.length == 2) { + imageWidth = imageHeight = 2 * imageWidth; } return NineGridView( type: NineGridType.weiBo, @@ -46,15 +49,25 @@ Widget image( }, ); }, - child: ClipRRect( - borderRadius: BorderRadius.circular(12), - child: NetworkImgLayer( - src: picArr[index]['img_src'], - width: imageWidth, - height: imageWidth, - origAspectRatio: - picArr[index]['img_width'] / picArr[index]['img_height'], - ), + child: Stack( + children: [ + ClipRRect( + borderRadius: BorderRadius.circular(12), + child: NetworkImgLayer( + src: picArr[index]['img_src'], + width: imageWidth, + height: imageHeight, + origAspectRatio: + picArr[index]['img_width'] / picArr[index]['img_height'], + ), + ), + if (picArr[index]['img_height'] / picArr[index]['img_width'] > 22 / 9) + const PBadge( + text: '长图', + right: 8, + bottom: 8, + ), + ], ), ), ); diff --git a/lib/common/widgets/nine_grid_view.dart b/lib/common/widgets/nine_grid_view.dart index 51fd019c..306b75f8 100644 --- a/lib/common/widgets/nine_grid_view.dart +++ b/lib/common/widgets/nine_grid_view.dart @@ -140,7 +140,8 @@ class _NineGridViewState extends State { double space = widget.space; double itemW; if (widget.type == NineGridType.weiBo && - (itemCount == 1 || itemCount == 2 || itemCount == 4)) { + (itemCount == 1 || itemCount == 2)) { + // || itemCount == 4 itemW = (width - space) / 2; } else { itemW = (width - space * 2) / 3; diff --git a/lib/pages/video/detail/introduction/controller.dart b/lib/pages/video/detail/introduction/controller.dart index ff9affb7..3afcc39e 100644 --- a/lib/pages/video/detail/introduction/controller.dart +++ b/lib/pages/video/detail/introduction/controller.dart @@ -659,7 +659,7 @@ class VideoIntroController extends GetxController { final res = await VideoHttp.aiConclusion( bvid: bvid, cid: lastPlayCid.value, - upMid: videoDetail.value.owner!.mid!, + upMid: videoDetail.value.owner?.mid, ); SmartDialog.dismiss(); if (res['status']) {