代码
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 ”,但扩展了限制窗口小部件 可以显示多少个弹性。问题是省略号不起作用 预期
注意:当我像这样的省略号一样删除字符串var name = "AdellenaJacksonnnnnnnnn";
中的空格时
答案 0 :(得分:2)
答案 1 :(得分:1)
尝试使用灵活而不是扩展,因为。 Official Documentation
使用“灵活”小部件可为“行”,“列”或“ Flex”的子级提供扩展的灵活性,以填充主轴上的可用空间(例如,水平放置为“行”或垂直放置为“列”),但是灵活的不需要孩子填充可用空间。
答案 2 :(得分:1)
尝试键入像杰克逊nn nn nnn nnn这样可以更好地工作的姓氏
答案 3 :(得分:1)
您可以利用这种愚蠢的技巧,只要将名字分成任何最大长度,就可以将名字分成两个部分,然后修改并实际使用它。
我已经剪掉了名字,所以假设没有maxlength,它看起来不会像ui一样溢出
Flexible(
child: Text(
tempname[0],
overflow: TextOverflow.clip,
maxLines: 1,
),
),
姓氏被设置为省略号,以使命中名称溢出
Flexible(
child: Text(
tempname[0],
overflow: TextOverflow.ellipsis,
),
),
ListView.builder(
shrinkWrap: true,
itemCount: 10,
itemBuilder: (BuildContext context, int index) {
var tempname = name.split(' ');
return Padding(
padding: const EdgeInsets.all(10.0),
child: new Row(
mainAxisSize: MainAxisSize.max,
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,
// width: 100,
child: Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Flexible(
child: Text(
tempname[0],
overflow: TextOverflow.clip,
maxLines: 1,
),
),
Text(' '),
Flexible(
child: Text(
tempname[1],
overflow: TextOverflow.ellipsis,
),
)
],
),
),
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),
),
),
],
),
),
],
),
);
}),
name ='Adellenaddddddddddddd Jacksoonnnnnnnnnn';
name ='Nadeem Jacksoonnnnnnnnnn';
答案 4 :(得分:1)
overflow: TextOverflow.fade
帮了我大忙。