Flutter:多行文本小部件上的多余 space
Flutter: Excess space on multiline Text widgets
我有一个文本小部件,它被带有 BoxConstraints 的容器约束,我注意到当文本有多行时,由于溢出会出现多余的间距(右侧)。
减去样式的代码很简单:
Container(
constraints: BoxConstraints(maxWidth: MediaQuery.of(context).size.width * (2/3)),
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 20),
child: Text(
message
),
),
)
可以看到正文右边的space。查看叠加层,看起来这是预期的行为,但是有什么方法可以约束 Widget 删除多余的 space?
您正在寻找属性:textWidthBasis。
将其设置为 TextWidthBasis.longestLine
,文本宽度将根据 longestLine
调整大小,因此删除右侧的空白 space。
Text("Why don't you I set up an appointment and we can discuss this further...",
textWidthBasis: TextWidthBasis.longestLine,),
完整代码:
class MultiLinee extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Container(
color: Colors.grey,
child: Container(
constraints: BoxConstraints(maxWidth: MediaQuery
.of(context)
.size
.width * (2 / 3)),
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 20),
child: Container(
color: Colors.yellow,
child: Text("Why don't you I set up an appointment and we can discuss this further...",
textWidthBasis: TextWidthBasis.longestLine,),
),
),
),
),
),
);
}
}
我有一个文本小部件,它被带有 BoxConstraints 的容器约束,我注意到当文本有多行时,由于溢出会出现多余的间距(右侧)。
减去样式的代码很简单:
Container(
constraints: BoxConstraints(maxWidth: MediaQuery.of(context).size.width * (2/3)),
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 20),
child: Text(
message
),
),
)
可以看到正文右边的space。查看叠加层,看起来这是预期的行为,但是有什么方法可以约束 Widget 删除多余的 space?
您正在寻找属性:textWidthBasis。
将其设置为 TextWidthBasis.longestLine
,文本宽度将根据 longestLine
调整大小,因此删除右侧的空白 space。
Text("Why don't you I set up an appointment and we can discuss this further...",
textWidthBasis: TextWidthBasis.longestLine,),
完整代码:
class MultiLinee extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Container(
color: Colors.grey,
child: Container(
constraints: BoxConstraints(maxWidth: MediaQuery
.of(context)
.size
.width * (2 / 3)),
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 20),
child: Container(
color: Colors.yellow,
child: Text("Why don't you I set up an appointment and we can discuss this further...",
textWidthBasis: TextWidthBasis.longestLine,),
),
),
),
),
),
);
}
}