flutter - Flutter – 连续两个文本,左边一个优雅地溢出
问题描述
如何让两个并排的文本小部件只允许最左边的一个优雅地溢出?
一列中的一个文本小部件很容易优雅地溢出。连续并排的两个文本小部件是有问题的。
堆栈溢出需要更多细节,但老实说,我现在可能只是在浪费你更多的时间。
Widget _listItem({String title, String subtitle}){
return Row(
children: <Widget>[
_listItemIcon(),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
_listItemTitle(title),
Row(
children: <Widget>[
_listItemSubtitle(subtitle), // how do I allow this to overflow gracefully
_listItemTime("2m") // but stop this from overflowing
],
)
],
),
),
_listItemFavorite()
],
);
}
//////////////
Widget _listItemIcon(){
return Icon(Icons.message);
}
Widget _listItemTitle(String title){
return Text(
title,
softWrap: false,
overflow: TextOverflow.fade,
style: TextStyle(
fontSize:24.0
),
);
}
Widget _listItemSubtitle(String subtitle){
return Text(
"[$subtitle]",
softWrap: false,
overflow: TextOverflow.fade,
);
}
Widget _listItemTime(String time){
return Text(
"[$time]",
softWrap: false,
overflow: TextOverflow.fade,
);
}
Widget _listItemFavorite(){
return Icon(Icons.favorite);
}
解决方案
您可以使用Flexible
小部件:
Widget _listItemSubtitle(String subtitle) {
return new Flexible(
fit: FlexFit.loose,
child: Text(
"[$subtitle]",
softWrap: false,
overflow: TextOverflow.fade,
),
);
}
选择:
如果您希望时间小部件始终位于右侧,您可以将字幕文本包装在Expanded
小部件中:
Widget _listItemSubtitle(String subtitle){
return Expanded(
child: Text(
"[$subtitle]",
softWrap: false,
overflow: TextOverflow.fade,
),
);
}
推荐阅读
- excel - 当使用 Excel VBA 有两个具有相同 TagName 和 InnerText 的不同链接时如何单击所需链接
- c++ - C++:矩阵计算器的高级类模型
- powershell - 使用 PowerShell 从 CSV 文件中过滤数据
- c++ - 如何指定编译 C++ 代码时可以包含的文件范围?
- javascript - 将对象属性添加到 JavaScript 中数组内的特定对象的问题
- gremlin - gremlin python添加顶点KeyError
- c - C:在涉及消息队列的函数的特定段中访问或尝试更改传递的变量会停止进程
- python - os.environ.get('key') 和 os.getenv('key') 我应该使用哪一个?
- arduino - 需要一些帮助来理解一些代码
- python - 在以下代码中使用“int”的目的是什么?