我遇到ListTile
的leading
溢出问题:
Leading widget consumes entire tile width. Please use a sized widget, or consider replacing ListTile with a custom widget (see https://api.flutter.dev/flutter/material/ListTile-class.html#material.ListTile.4)
'package:flutter/src/material/list_tile.dart':
package:flutter/…/material/list_tile.dart:1
Failed assertion: line 1204 pos 7: 'tileWidth != leadingSize.width || tileWidth == 0.0'
我该怎么解决呢?
我参考了this question并尝试了this answer中的代码。但是,我仍然得到同样的错误。
我的代码:
ListTile(
leading: CircleAvatar(
radius: 17.5,
maxRadius: 17.5,
minRadius: 17.5,
backgroundColor: Colors.cyan,
child: const Icon(
Icons.timer_outlined,
color: Colors.white,
),
),
minLeadingWidth: 0.0,
title: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
…,
style: const TextStyle(color: Colors.cyan, fontSize: 16.0),
),
Text(
…,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(color: Color.fromARGB(255, 117, 117, 117), fontSize: 16.0 * 0.8),
),
],
),
…
),
如果您需要更多信息,请随时发表评论。
如何解决ListTile
中的leading
溢出问题?我将非常感谢任何帮助。提前感谢!
2条答案
按热度按时间1rhkuytd1#
您只需删除:
f0brbegy2#
这是因为ListTile受到约束的方式。
前导和尾随小部件的高度根据Material规范进行限制。为便于访问,单行ListTiles有一个例外。请注意,前导和尾随小部件可以根据需要水平扩展,因此请确保它们受到适当的限制。
在您的代码中,您正在创建半径为
17.5
的CircleAvatar
,因此其直径为35
,可能大于ListTile
约束高度leading
。因此,尝试 Package 在所需高度的
SizedBox
中,以克服错误。编辑:在您请求代码后,我发现半径不是导致问题的原因,问题实际上是原因,因为您同时指定了
radius
和maxRadius
或minRadius
。Flutter编译器在使用
radius
或max min Radius
属性时会混淆,因此会抛出以下错误。因此,您需要指定
radius
或minRadius
和maxRadius
将代码更改为
或
现在错误消失了!!