我希望由变量location
标识的字符串是可单击的,如果它溢出,请使用省略号来隐藏溢出的字符。但是,如果location
足够短,不需要省略号,那么我不希望该行中的剩余空间可点击
Row(
children: <Widget>[
Text('Location: '),
Expanded(
child: InkWell(
onTap: () { // do something },
child: Text(
'$location',
overflow: TextOverflow.ellipsis,
), // Text
), // InkWell
), // Expanded
], // <Widget>[]
),
我也尝试使用TextSpan
,但是发生了同样的事情-如果location
太短,则其右侧的空格也会对抽头区域起反应
RichText(
text: TextSpan(
children: [
TextSpan(text: 'Location: '),
TextSpan(
text: '$location',
recognizer: TapGestureRecognizer()
..onTap = () {
// do something
},
),
],
),
),
答案 0 :(得分:1)
要使$ location仅可单击,只需用“ Flexible”替换“ Expanded” ,因为Flexible会将窗口小部件的尺寸缩小为其内容,而不是其父级的尺寸,例如Expanded,例如:>
child: Row(
children: <Widget>[
Text('Location: '),
// Replace "Expanded" with "Flexible"
Flexible(
child: InkWell(
onTap: () {},
child: Text(
'$location',
overflow: TextOverflow.ellipsis,
), // Text
), // InkWell
), // Flexible
], // <Widget>[]
),