fix: 动态内容图片预览
This commit is contained in:
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:pilipala/common/widgets/network_img_layer.dart';
|
import 'package:pilipala/common/widgets/network_img_layer.dart';
|
||||||
import 'package:pilipala/models/dynamics/result.dart';
|
import 'package:pilipala/models/dynamics/result.dart';
|
||||||
|
import 'package:pilipala/pages/preview/index.dart';
|
||||||
|
|
||||||
// 富文本
|
// 富文本
|
||||||
InlineSpan richNode(item, context) {
|
InlineSpan richNode(item, context) {
|
||||||
@ -198,11 +199,11 @@ InlineSpan richNode(item, context) {
|
|||||||
print('有图片');
|
print('有图片');
|
||||||
List<OpusPicsModel> pics = item.modules.moduleDynamic.major.opus.pics;
|
List<OpusPicsModel> pics = item.modules.moduleDynamic.major.opus.pics;
|
||||||
int len = pics.length;
|
int len = pics.length;
|
||||||
List picList = [];
|
List<String> picList = [];
|
||||||
|
|
||||||
if (len == 1) {
|
if (len == 1) {
|
||||||
OpusPicsModel pictureItem = pics.first;
|
OpusPicsModel pictureItem = pics.first;
|
||||||
picList.add(pictureItem.url);
|
picList.add(pictureItem.url!);
|
||||||
spanChilds.add(const TextSpan(text: '\n'));
|
spanChilds.add(const TextSpan(text: '\n'));
|
||||||
spanChilds.add(
|
spanChilds.add(
|
||||||
WidgetSpan(
|
WidgetSpan(
|
||||||
@ -210,8 +211,13 @@ InlineSpan richNode(item, context) {
|
|||||||
builder: (context, BoxConstraints box) {
|
builder: (context, BoxConstraints box) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Get.toNamed('/preview',
|
showDialog(
|
||||||
arguments: {'initialPage': 0, 'imgList': picList});
|
useSafeArea: false,
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return ImagePreview(initialPage: 0, imgList: picList);
|
||||||
|
},
|
||||||
|
);
|
||||||
},
|
},
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.only(top: 4),
|
padding: const EdgeInsets.only(top: 4),
|
||||||
@ -233,14 +239,19 @@ InlineSpan richNode(item, context) {
|
|||||||
if (len > 1) {
|
if (len > 1) {
|
||||||
List<Widget> list = [];
|
List<Widget> list = [];
|
||||||
for (var i = 0; i < len; i++) {
|
for (var i = 0; i < len; i++) {
|
||||||
picList.add(pics[i].url);
|
picList.add(pics[i].url!);
|
||||||
list.add(
|
list.add(
|
||||||
LayoutBuilder(
|
LayoutBuilder(
|
||||||
builder: (context, BoxConstraints box) {
|
builder: (context, BoxConstraints box) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Get.toNamed('/preview',
|
showDialog(
|
||||||
arguments: {'initialPage': i, 'imgList': picList});
|
useSafeArea: false,
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return ImagePreview(initialPage: i, imgList: picList);
|
||||||
|
},
|
||||||
|
);
|
||||||
},
|
},
|
||||||
child: NetworkImgLayer(
|
child: NetworkImgLayer(
|
||||||
src: pics[i].url,
|
src: pics[i].url,
|
||||||
|
|||||||
@ -48,13 +48,13 @@ class Routes {
|
|||||||
// 视频详情
|
// 视频详情
|
||||||
CustomGetPage(name: '/video', page: () => const VideoDetailPage()),
|
CustomGetPage(name: '/video', page: () => const VideoDetailPage()),
|
||||||
// 图片预览
|
// 图片预览
|
||||||
GetPage(
|
// GetPage(
|
||||||
name: '/preview',
|
// name: '/preview',
|
||||||
page: () => const ImagePreview(),
|
// page: () => const ImagePreview(),
|
||||||
transition: Transition.fade,
|
// transition: Transition.fade,
|
||||||
transitionDuration: const Duration(milliseconds: 300),
|
// transitionDuration: const Duration(milliseconds: 300),
|
||||||
showCupertinoParallax: false,
|
// showCupertinoParallax: false,
|
||||||
),
|
// ),
|
||||||
//
|
//
|
||||||
CustomGetPage(name: '/webview', page: () => const WebviewPage()),
|
CustomGetPage(name: '/webview', page: () => const WebviewPage()),
|
||||||
// 设置
|
// 设置
|
||||||
|
|||||||
Reference in New Issue
Block a user