在Flutter升级后,Listtile领先内容不再与父级匹配

问题描述 投票:0回答:1

在昨天进行了扑动升级后,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),

);

}

enter image description here

dart flutter height
1个回答
0
投票

我相信造成这种情况的变化是[这一个] [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中,所以它可能有问题,但这应该说明你在那里尝试做什么的基础知识。您可能希望根据需要将内容填充到填充(最可能至少是前导小部件)以获得当前的间距。

© www.soinside.com 2019 - 2024. All rights reserved.