我有一个Text小部件,如果它超过一定的大小,可以截断:
ConstrainedBox(
constraints: BoxConstraints(maxHeight: 50.0),
child: Text(
widget.review,
overflow: TextOverflow.ellipsis,
)
);
Run Code Online (Sandbox Code Playgroud)
或最大行数:
RichText(
maxLines: 2,
overflow: TextOverflow.ellipsis,
text: TextSpan(
style: TextStyle(color: Colors.black),
text: widget.review,
));
Run Code Online (Sandbox Code Playgroud)
我的目标是只有在溢出完成后才能扩展文本.有没有正确的方法来检查文本是否溢出?
我发现在RichText中有一个RenderParagraph renderObject,它有一个私有属性TextPainter _textPainter,有一个bool didExceedMaxLines.
简而言之,我只需要访问,richText.renderObject._textPainter.didExceedMaxLines但正如您所看到的,它是使用下划线私有的.
我正在尝试复制下面的用户界面。我想显示一个项目列表,其中每个项目平均分布为 3 个部分(请参阅下图)。我想达到同样的响应能力。但我无法将它们按完美顺序排列。这是模型:
这就是我所取得的成就:
这是我的代码:
Card stockList() {
return Card(
child: Container(
padding: EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text('Stocks & Values', style: Theme.of(context).textTheme.subtitle,),
SizedBox(height: 10.0),
tile1(),
SizedBox(height: 10.0,),
Divider(),
SizedBox(height: 10.0,),
tile2(),
SizedBox(height: 10.0,),
Divider(),
tile3(),
SizedBox(height: 10.0,),
Divider(),
tile4(),
],
),
),
);
}
Container tile1() {
return Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Row(
children: <Widget>[
Text('24k', style: Theme.of(context).textTheme.title,),
SizedBox(width: 5.0),
Image.asset('assets/country_flags/in.png',width: 20.0,height: 20.0,)
],
),
SizedBox(height: 2.0,), …Run Code Online (Sandbox Code Playgroud)