昨天进行了状态升级后,ListTile行距的内容(特别是高度)不再与父级匹配。 我现在身高溢出。宽度按预期工作。 如您在图片中所看到的,领先的小部件下方仍然有空间。 有人知道如何解决这个问题吗?
还是有办法降级Flutter版本?
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),
);
}
答案 0 :(得分:0)
我相信引起此问题的更改是[this] [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中,所以它可能会有问题,但这应该说明您尝试在其中进行的操作的基本知识。您可能需要根据需要将内容包装在padding中(很可能至少是前导控件),以获取当前的间距。