Flutter 如何将填充添加到文本小部件的背景色
我想创建一个文本小部件,以实现您在下面看到的内容: 我希望文本的背景色有一些额外的填充,但仅限于实际存在文本的地方。 目前,我必须在将文本小部件包装到容器小部件(然后在第二个较短行的空白处添加背景色,这是我不想要的)之间进行选择。或者,我可以为文本的textStyle小部件选择背景色,但它不考虑高度(也称为行高)Flutter 如何将填充添加到文本小部件的背景色,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我想创建一个文本小部件,以实现您在下面看到的内容: 我希望文本的背景色有一些额外的填充,但仅限于实际存在文本的地方。 目前,我必须在将文本小部件包装到容器小部件(然后在第二个较短行的空白处添加背景色,这是我不想要的)之间进行选择。或者,我可以为文本的textStyle小部件选择背景色,但它不考虑高度(也称为行高) 有什么方法可以做到这一点吗?要做到这一点,您可以使用列()并为一篇文章文本添加两个容器(),代码规格如下 Column( crossAxisAli
有什么方法可以做到这一点吗?要做到这一点,您可以使用
列()
并为一篇文章文本添加两个容器()
,代码规格如下
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小部件中。我很快就会做的。重要提示:由于文本宽度和高度的计算出现了新问题,背景目前不稳定。我正在修理。一旦我修复了基本问题,我将在这里更新包和我的描述。