如何为定位的文本块设置背景颜色格式?
How do I format the background color for a positioned block of text?
我有一个定位的文本元素,它位于堆栈中图像元素的顶部。我想为该文本元素应用简单的背景颜色,以便它像标题框一样框住文本:
我可以通过插入一个 Container 作为另一个位于 child 的容器来做到这一点。但是每次文本字符串更改时我都必须重新计算宽度,即 sub-optimal。有没有更好的方法?
var stack = new Stack(
children: <Widget>[
new Image.asset ( // background photo
"assets/texture.jpg",
fit: ImageFit.cover,
height: 600.0,
),
new Positioned ( // headline
child: new Container(
decoration: new BoxDecoration (
backgroundColor: Colors.black
),
),
left: 0.0,
bottom: 108.0,
width: 490.0,
height: 80.0,
),
new Positioned (
child: new Text (
"Lorem ipsum dolor.",
style: new TextStyle(
color: Colors.blue[500],
fontSize: 42.0,
fontWeight: FontWeight.w900
)
),
left: 16.0,
bottom: 128.0,
)
]
);
只需将 Text 元素作为子元素 嵌套在 具有 BoxDecoration(即背景色)的 Container 中; Container 将拉伸以适应里面的 Text。此外,可以为该容器指定填充,这样就无需为框硬编码 width/height。
var stack = new Stack(
children: <Widget>[
new Image.asset ( // background photo
"assets/texture.jpg",
fit: ImageFit.cover,
height: 600.0,
),
new Positioned ( // headline
child: new Container(
child: new Text (
"Lorem ipsum dolor.",
style: new TextStyle(
color: Colors.blue[500],
fontSize: 42.0,
fontWeight: FontWeight.w900
)
),
decoration: new BoxDecoration (
backgroundColor: Colors.black
),
padding: new EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 16.0),
),
left: 0.0,
bottom: 108.0,
),
]
);
自 Flutter 0.10.3 起更改了 BoxDecoration。 backgroundColor: 不再有效 属性。现在是颜色:.
我有一个定位的文本元素,它位于堆栈中图像元素的顶部。我想为该文本元素应用简单的背景颜色,以便它像标题框一样框住文本:
我可以通过插入一个 Container 作为另一个位于 child 的容器来做到这一点。但是每次文本字符串更改时我都必须重新计算宽度,即 sub-optimal。有没有更好的方法?
var stack = new Stack(
children: <Widget>[
new Image.asset ( // background photo
"assets/texture.jpg",
fit: ImageFit.cover,
height: 600.0,
),
new Positioned ( // headline
child: new Container(
decoration: new BoxDecoration (
backgroundColor: Colors.black
),
),
left: 0.0,
bottom: 108.0,
width: 490.0,
height: 80.0,
),
new Positioned (
child: new Text (
"Lorem ipsum dolor.",
style: new TextStyle(
color: Colors.blue[500],
fontSize: 42.0,
fontWeight: FontWeight.w900
)
),
left: 16.0,
bottom: 128.0,
)
]
);
只需将 Text 元素作为子元素 嵌套在 具有 BoxDecoration(即背景色)的 Container 中; Container 将拉伸以适应里面的 Text。此外,可以为该容器指定填充,这样就无需为框硬编码 width/height。
var stack = new Stack(
children: <Widget>[
new Image.asset ( // background photo
"assets/texture.jpg",
fit: ImageFit.cover,
height: 600.0,
),
new Positioned ( // headline
child: new Container(
child: new Text (
"Lorem ipsum dolor.",
style: new TextStyle(
color: Colors.blue[500],
fontSize: 42.0,
fontWeight: FontWeight.w900
)
),
decoration: new BoxDecoration (
backgroundColor: Colors.black
),
padding: new EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 16.0),
),
left: 0.0,
bottom: 108.0,
),
]
);
自 Flutter 0.10.3 起更改了 BoxDecoration。 backgroundColor: 不再有效 属性。现在是颜色:.