在Flutter中使用markdown

最近在写flutter入门的项目,打算把常用的widgets和插件用法总结下,方便后期查找,项目大概是这个样子。

搜索页

736067ce433e2b35f1fb9923918fca82.png

aa421ed32e9dd7ca90ae92bb429d707b.png

widgets属性页面写的时候考虑排版,但是文字居多,如果设计下排版,用widgets把样式写好,后期如果需要修改,则改动比较大,所以考虑使用markdown,毕竟也是支持的。

1.安装依赖

根目录下pubspec.yaml文件增加 flutter_markdown: ^0.3.4

dependencies:
  flutter:
    sdk: flutter
  flutter_markdown: ^0.3.4

我使用的编辑器是VSCode,保存自动下载依赖,如果没有的话,执行

flutter pub get

2.创建markdown

我在lib目录下新建文件夹markdown,文件夹里新建container.md文件,在根目录下pubspec.yaml文件中增加

d9c729625c26ccd8c73e794a852fa14c.png

3.使用markdown

引入markdown

e56a694970631f4678075bcbb7770011.png

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_markdown/flutter_markdown.dart';

导入md文件,展示(重点是红圈中的)

3b775acb7ab59a0ee807c6417f0091a7.png

return Container(
      child: FutureBuilder(
        future: rootBundle.loadString('lib/markdown/container.md'),
        builder: (BuildContext context, AsyncSnapshot snapshot) {
          if (snapshot.hasData) {
            return Markdown(
              data: snapshot.data,
              selectable: true,
              styleSheet: MarkdownStyleSheet(
                // 支持修改样式
                h1: TextStyle(fontSize: 14),
              ),
            );
          } else {
            return Center(
              child: Text("加载中..."),
            );
          }
        },
      ),
    );

最终效果

0bbfb53763830567d3fed99f5fa1654e.png

posted @ 2022-05-31 18:10  青年码农  阅读(388)  评论(0编辑  收藏  举报