Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何将填充添加到文本小部件的背景色_Flutter_Dart_Flutter Layout - Fatal编程技术网

Flutter 如何将填充添加到文本小部件的背景色

Flutter 如何将填充添加到文本小部件的背景色,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我想创建一个文本小部件,以实现您在下面看到的内容: 我希望文本的背景色有一些额外的填充,但仅限于实际存在文本的地方。 目前,我必须在将文本小部件包装到容器小部件(然后在第二个较短行的空白处添加背景色,这是我不想要的)之间进行选择。或者,我可以为文本的textStyle小部件选择背景色,但它不考虑高度(也称为行高) 有什么方法可以做到这一点吗?要做到这一点,您可以使用列()并为一篇文章文本添加两个容器(),代码规格如下 Column( crossAxisAli

我想创建一个文本小部件,以实现您在下面看到的内容:

我希望文本的背景色有一些额外的填充,但仅限于实际存在文本的地方。

目前,我必须在将文本小部件包装到容器小部件(然后在第二个较短行的空白处添加背景色,这是我不想要的)之间进行选择。或者,我可以为文本的textStyle小部件选择背景色,但它不考虑高度(也称为行高)


有什么方法可以做到这一点吗?

要做到这一点,您可以使用
列()
并为一篇文章文本添加两个
容器()
,代码规格如下

        Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            //this is first container
            Container(
              decoration: BoxDecoration(
                color: Colors.white,
                border: Border.all(color: Colors.white),
                borderRadius: BorderRadius.circular(10.0)
              ),
              child: Padding(
                padding: EdgeInsets.all(10.0),
                child: Text("This is the dummy text for", style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold))
              )
            ),
            
            //this is second container
            Container(
              decoration: BoxDecoration(
                color: Colors.white,
                border: Border.all(color: Colors.white),
                borderRadius: BorderRadius.only(bottomLeft: Radius.circular(10.0), bottomRight: Radius.circular(10.0))
              ),
              child: Padding(
                padding: EdgeInsets.all(10.0),
                child: Text("post 1", style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold))
              )
            )
          ]
        )
结果


您可以使用
油漆
作为
文本样式的
背景

Text(
  'Random caption for this post1',
  style: TextStyle(
    fontWeight: FontWeight.bold,
    background: Paint()..color = Colors.white
    ..strokeWidth = 17
    ..style = PaintingStyle.stroke,
  ),
  textAlign: TextAlign.center,
)
结果:


这两个答案都是黑客攻击,根本无法与较大的文本进行良好的扩展。 因此,我写了一个包,现在可以添加填充,半径和颜色的文本背景

下面是一幅图像,展示了软件包的文本可以做什么:


软件包的链接如下:

谢谢您的回答。这确实实现了那种风格,但我认为这种方法必须是硬编码的。我需要一些更流畅的东西,可以自动缩放,例如,不同的标题长度。是的,甚至我也在搜索它,但不知怎么的,这需要时间。让我看看能不能想出点办法@Chrisl446:)@rexfordkelly谢谢你的回复,但不,那是CSS的回复。我正试图用颤振来实现这一点。谢谢你的回答!我刚刚尝试了这个包,但没有找到调整填充或舍入的选项-你能帮我解决这个问题吗?很好,我还没有将这两个参数发布到AutoSizeText小部件中。我很快就会做的。重要提示:由于文本宽度和高度的计算出现了新问题,背景目前不稳定。我正在修理。一旦我修复了基本问题,我将在这里更新包和我的描述。