markdown_viewer.dart 1011 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import 'package:cached_network_image/cached_network_image.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter_markdown/flutter_markdown.dart';
  4. /// Markdown组件
  5. class MarkdownViewer extends StatelessWidget {
  6. /// 内容
  7. final String content;
  8. /// 内容是否可以滚动
  9. final bool enableContentScroll;
  10. const MarkdownViewer({
  11. super.key,
  12. required this.content,
  13. required this.enableContentScroll,
  14. });
  15. @override
  16. Widget build(BuildContext context) {
  17. return Markdown(
  18. // 文档内容
  19. data: content,
  20. // 让Markdown高度自适应内容
  21. shrinkWrap: !enableContentScroll,
  22. // 禁用自身滚动
  23. physics:
  24. enableContentScroll
  25. // 允许滑动
  26. ? ClampingScrollPhysics()
  27. // 禁止滑动
  28. : const NeverScrollableScrollPhysics(),
  29. // 配置图片加载器
  30. imageBuilder:
  31. (uri, title, alt) => CachedNetworkImage(imageUrl: uri.toString()),
  32. );
  33. }
  34. }