如何在Flutter中使用Markdown实现文本两端对齐?

16

我开始使用Flutter Markdown,但我想对其进行对齐,但一直无法实现。

我尝试使用CenterAlignment,但没有起作用。

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

class OutsideBankHourDescription extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    String text =
        "Antecipações em __horários__ bancários acontecem em 1h na média. __Fora do horário bancário__ o saldo estará em sua conta __no dia seguinte.__";

    return Expanded(
      child: Container(
        alignment: Alignment.center,
        child: Markdown(
          styleSheet: MarkdownStyleSheet.fromTheme(Theme.of(context)),
          data: text,
        ),
      ),
    );
  }
}
2个回答

15

目前在flutter_markdown 0.2.0中无法更改文本对齐方式,你需要联系此插件的作者请求添加此功能。

但是如果您需要快速修复,可以在此文件的源代码中添加textAlign: TextAlign.center属性:https://github.com/flutter/flutter_markdown/blob/master/lib/src/builder.dart

代码行:345

mergedTexts.add(new RichText(text: mergedSpan, textAlign: TextAlign.center));

结果:

flutter_markdown居中对齐

为了更加优雅的方式,你需要克隆这个插件的git仓库,并将其直接添加到你的项目中,然后自己添加文本对齐功能。


代码 GitHub 崩溃了。 - Carlos Peñaranda

14

使用 flutter_markdown 可以实现文本对齐。

    var style = MarkdownStyleSheet(
        textAlign: WrapAlignment.center,
        h1Align: WrapAlignment.center,
      );
    Markdown(
        styleSheet: style,
        data: '# header1 is center-aligned\ntext body is also center-aligned'
    );

您可以使用MarkdownStyleSheet类提供的所有其他可选参数来自定义您的样式。


对于具有格式(如粗体或超链接)的字符串,对齐似乎无法正常工作...至少在v0.3.4中对我来说是这样。 - Giraldi
对齐样式应该能够在加粗或超链接等各种格式下正常工作。你可以贴一段代码片段,这样其他人也可以查看并可能找出解决方案吗? - EthanL
不确定为什么。我做的和你一样,只是用了 MarkdownBody。字符串大致是这样的(最后加粗的文本):“Lorem ipsum dolor quis elit duis ullamco aute ut. Magna ullamco duis tempor nulla。” - Giraldi
哦,我认为如果文本太长而被分成多行,就会发生这种情况。如果我使用适合一行的较短文本,它就可以正常工作。 - Giraldi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接