【发布时间】:2019-09-20 18:50:35
【问题描述】:
- 我正在尝试创建一个包含 10 个数据的列表视图,在每个项目中都有四个小部件包裹在一行内。
- 首先我插入了一个圆形图像小部件,接下来我添加了扩展小部件以平均划分文本小部件。
- 几乎,我已经做到了,但我发现省略文本有困难。
代码
class EmailPage extends StatefulWidget {
@override
_EmailPageState createState() => _EmailPageState();
}
class _EmailPageState extends State<EmailPage> {
GlobalKey _keyRed = GlobalKey();
var name = "Adellena Jacksonnnnnnnnnnnnnnnnnnnnnnnnnnnn";
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
elevation: 0.0,
backgroundColor: greenColor,
title: const Text('Inbox'),
actions: <Widget>[
new IconButton(
icon: new Icon(Icons.edit),
onPressed: () => Navigator.of(context).pop(null),
),
],
),
body: SizedBox(
width: MediaQuery.of(context).size.width,
child: ListView.builder(
shrinkWrap: true,
itemCount: 10,
itemBuilder: (BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.all(10.0),
child: new Row(
children: <Widget>[
SizedBox(
width: 30,
height: 30,
child: CircleAvatar(
backgroundColor: Colors.brown.shade800),
),
Expanded(
child: new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Expanded(
flex: 4,
child: Container(
child: new Text(
name,
overflow: TextOverflow.ellipsis,
softWrap: false,
style: TextStyle(fontSize: 14),
),
),
),
new Expanded(
flex: 3,
child: new Text(
"&14215",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 12),
),
),
new Expanded(
flex: 3,
child: new Text(
"1000 min ago",
textAlign: TextAlign.end,
overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 14),
),
),
],
),
),
],
),
);
}),
));
}
}
截图 1
当我们在文本小部件中删除
overflow: TextOverflow.ellipsis时,看起来像这样 [屏幕截图 2]
截图 2
在上图中,我没有看到全文“AdellenaJacksonnnnnnnnn ",但 expanded 限制了小部件 里面可以显示多少 flex。问题是省略号不起作用 预计
注意:当我删除字符串 var name = "AdellenaJacksonnnnnnnnn"; 中的空格时,像这个省略号一样工作正常
【问题讨论】: