在昨天进行了扑动升级后,ListTile的内容(特别是高度)不再与父级匹配。我现在身高已经过了。宽度按预期工作。正如您在图片中看到的那样,主要小部件下方仍有空间。有谁知道如何解决这一问题?
或者有没有办法降低颤振版本?
Widget _listTile(){
return ListTile(
contentPadding: EdgeInsets.fromLTRB(3.0, 1.0, 0.0, 1.0),
dense: true,
leading: Column(
children: <Widget>[
_leadingButton(),
_leadingProgress
],
),
title: _textSubtitle(subtitle),
subtitle: _textSubtitle(subtitle),
);
}
我相信造成这种情况的变化是[这一个] [1]:https://github.com/flutter/flutter/commit/0e2eeb5a485aaccdab7007ad9b90fd8120e77983#diff-53f33273ae4e7462729c5f4b7394428b。如果您阅读代码,它表示它正在进行更新以遵守材料规范,这意味着对窗口小部件大小的约束,因此很有可能它不会改变回原理。你如何使用它在技术上违背了材料规范。
但是,您可以简单地创建自己的窗口小部件,而不是尝试降级颤振,而不需要使用ListTile。
这样的事情可能会做:
class MyListTile extends StatelessWidget {
final Widget leading;
final Widget title;
final Widget subtitle;
final EdgeInsets padding;
MyListTile({@required this.leading, @required this.title, @required this.subtitle, this.padding});
@override
void build(BuildContext context) {
return Padding(
padding: padding ?? EdgeInsets.zero,
child: Row(
children: [
leading,
Expanded(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
title,
subtitle,
],
),
),
],
),
);
}
}
虽然完全披露 - 我没有运行该代码,甚至没有将它放在IDE中,所以它可能有问题,但这应该说明你在那里尝试做什么的基础知识。您可能希望根据需要将内容填充到填充(最可能至少是前导小部件)以获得当前的间距。