refactor image grid

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-03-05 22:47:01 +08:00
parent 077255e776
commit 381c385726
9 changed files with 928 additions and 575 deletions

View File

@@ -2,8 +2,8 @@ import 'dart:math' as math;
import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/cached_network_svg_image.dart';
import 'package:PiliPlus/common/widgets/image/custom_grid_view.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/image_grid/image_grid_view.dart';
import 'package:PiliPlus/common/widgets/image_viewer/hero.dart';
import 'package:PiliPlus/http/constants.dart';
import 'package:PiliPlus/models/common/image_preview_type.dart';
@@ -247,8 +247,7 @@ class OpusContent extends StatelessWidget {
child: child,
);
} else {
return CustomGridView(
maxWidth: maxWidth,
return ImageGridView(
picArr: element.pic!.pics!
.map(
(e) => ImageModel(

View File

@@ -293,9 +293,7 @@ class AuthorPanel extends StatelessWidget {
height: 3,
decoration: BoxDecoration(
color: theme.colorScheme.outline,
borderRadius: const BorderRadius.all(
Radius.circular(3),
),
borderRadius: const .all(.circular(1.5)),
),
),
),

View File

@@ -1,7 +1,7 @@
// 内容
import 'package:PiliPlus/common/widgets/custom_icon.dart';
import 'package:PiliPlus/common/widgets/flutter/text/text.dart' as custom_text;
import 'package:PiliPlus/common/widgets/image/custom_grid_view.dart';
import 'package:PiliPlus/common/widgets/image_grid/image_grid_view.dart';
import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/pages/dynamics/widgets/rich_node_panel.dart';
import 'package:PiliPlus/utils/page_utils.dart';
@@ -94,8 +94,7 @@ Widget content(
primary: theme.colorScheme.primary,
),
if (pics != null && pics.isNotEmpty)
CustomGridView(
maxWidth: maxWidth,
ImageGridView(
picArr: pics
.map(
(item) => ImageModel(

View File

@@ -1,8 +1,8 @@
import 'dart:io' show Platform;
import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/custom_grid_view.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/image_grid/image_grid_view.dart';
import 'package:PiliPlus/http/dynamics.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/search.dart';
@@ -252,9 +252,8 @@ TextSpan? richNode(
..add(const TextSpan(text: '\n'))
..add(
WidgetSpan(
child: CustomGridView(
child: ImageGridView(
fullScreen: true,
maxWidth: maxWidth,
picArr: i.pics!
.map(
(item) => ImageModel(

View File

@@ -5,8 +5,8 @@ import 'package:PiliPlus/common/widgets/custom_icon.dart';
import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart';
import 'package:PiliPlus/common/widgets/gesture/horizontal_drag_gesture_recognizer.dart'
show touchSlopH;
import 'package:PiliPlus/common/widgets/image/custom_grid_view.dart'
show CustomGridView, ImageModel;
import 'package:PiliPlus/common/widgets/image_grid/image_grid_view.dart'
show ImageGridView, ImageModel;
import 'package:PiliPlus/common/widgets/pendant_avatar.dart';
import 'package:PiliPlus/grpc/reply.dart';
import 'package:PiliPlus/http/fav.dart';
@@ -158,7 +158,7 @@ List<SettingsModel> get extraSettings => [
leading: const Icon(Icons.photo_outlined),
setKey: SettingBoxKey.horizontalPreview,
defaultVal: false,
onChanged: (value) => CustomGridView.horizontalPreview = value,
onChanged: (value) => ImageGridView.horizontalPreview = value,
),
NormalModel(
title: '评论折叠行数',
@@ -468,7 +468,7 @@ List<SettingsModel> get extraSettings => [
leading: const Icon(Icons.menu),
setKey: SettingBoxKey.enableImgMenu,
defaultVal: false,
onChanged: (value) => CustomGridView.enableImgMenu = value,
onChanged: (value) => ImageGridView.enableImgMenu = value,
),
SwitchModel(
setKey: SettingBoxKey.feedBackEnable,

View File

@@ -5,8 +5,8 @@ import 'package:PiliPlus/common/widgets/badge.dart';
import 'package:PiliPlus/common/widgets/dialog/report.dart';
import 'package:PiliPlus/common/widgets/flutter/text/text.dart' as custom_text;
import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/custom_grid_view.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/image_grid/image_grid_view.dart';
import 'package:PiliPlus/common/widgets/pendant_avatar.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show ReplyInfo, ReplyControl, Content, Url;
@@ -298,20 +298,17 @@ class ReplyItemGrpc extends StatelessWidget {
if (replyItem.content.pictures.isNotEmpty) ...[
Padding(
padding: padding,
child: LayoutBuilder(
builder: (context, constraints) => CustomGridView(
maxWidth: constraints.maxWidth,
picArr: replyItem.content.pictures
.map(
(item) => ImageModel(
width: item.imgWidth,
height: item.imgHeight,
url: item.imgSrc,
),
)
.toList(),
onViewImage: onViewImage,
),
child: ImageGridView(
picArr: replyItem.content.pictures
.map(
(item) => ImageModel(
width: item.imgWidth,
height: item.imgHeight,
url: item.imgSrc,
),
)
.toList(),
onViewImage: onViewImage,
),
),
const SizedBox(height: 4),