// 内容 import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/image/image_view.dart'; import 'package:PiliPlus/common/widgets/text/text.dart' as custom_text; import 'package:PiliPlus/models/dynamics/result.dart'; import 'package:PiliPlus/pages/dynamics/widgets/rich_node_panel.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; Widget content( ThemeData theme, bool isSave, BuildContext context, DynamicItemModel item, bool isDetail, Function(List, int)? callback, { floor = 1, }) { TextSpan? richNodes = richNode(theme, item, context); return Padding( padding: floor == 1 ? const EdgeInsets.fromLTRB(12, 0, 12, 6) : const EdgeInsets.only(bottom: 6), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ if (item.modules.moduleDynamic?.topic != null) GestureDetector( onTap: () => Get.toNamed( '/dynTopic', parameters: { 'id': item.modules.moduleDynamic!.topic!.id!.toString(), 'name': item.modules.moduleDynamic!.topic!.name!, }, ), child: Text.rich( TextSpan( children: [ WidgetSpan( alignment: PlaceholderAlignment.bottom, child: Padding( padding: const EdgeInsets.only(right: 4), child: Icon( size: 18, CustomIcon.topic_tag, color: theme.colorScheme.primary, ), ), ), TextSpan(text: item.modules.moduleDynamic!.topic!.name), ], ), style: TextStyle( fontSize: floor != 1 ? 14 : isDetail && !isSave ? 16 : 15, color: theme.colorScheme.primary, ), ), ), if (richNodes != null) isDetail && floor == 1 ? SelectableText.rich( richNodes, style: isSave ? const TextStyle(fontSize: 15) : const TextStyle(fontSize: 16), ) : custom_text.Text.rich( style: floor == 1 ? const TextStyle(fontSize: 15) : const TextStyle(fontSize: 14), richNodes, maxLines: isSave ? null : 6, ), if (item.modules.moduleDynamic?.major?.opus?.pics?.isNotEmpty == true) LayoutBuilder( builder: (context, constraints) { return imageView( constraints.maxWidth, item.modules.moduleDynamic!.major!.opus!.pics! .map( (item) => ImageModel( width: item.width, height: item.height, url: item.url ?? '', liveUrl: item.liveUrl, ), ) .toList(), callback: callback, ); }, ), ], ), ); }