首页 > 解决方案 > 在 ListTile 中省略前导

问题描述

我正在尝试重用 ListTile。如果未指定前导参数,我想跳过正在绘制的前导。我尝试过用空容器替换它的常见做法,但这不起作用。容器必须有一定的大小,否则会崩溃。但即使你给容器 1px 大小,它也会在瓦片的左侧创建很大的空间

在此处输入图像描述

class SimpleListTile extends StatelessWidget {
  final String title;
  final Widget leading;

  const SimpleListTile({@required this.title, this.leading});
  @override
  Widget build(BuildContext context) {
    return ListTile(
        leading: leading == null ? Container() : leading, title: Text(title));
  }
} 

有什么方法可以跳过绘制的前导而不在 if 语句中创建 2 个图块,因为我想对尾随小部件做同样的事情

标签: flutterdart

解决方案


忽略leading属性或显式提供null而不是空容器似乎可以做到这一点:

return ListTile(
  title: Text(title);
);

或者

return ListTile(
  title: Text(title);
  leading: leading // regardless of is it null or not
);

推荐阅读