繁体   English   中英

Flutter:在 SizedBox 之前添加图标。 为什么 Row 在 AppBar 之后消失了?

[英]Flutter: Adding icon before SizedBox. Why Row dissappears after AppBar?

我想在类别左侧放置一个菜单按钮。

 @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.symmetric(vertical: kDefaultPaddin),
      child: SizedBox(
        height: 25,
        child: ListView.builder(
            scrollDirection: Axis.horizontal,
            itemCount: categories.length,
            itemBuilder: (context, index) => buildCategory(index)),
      ),
    );
  }

现在看起来如何

那是 appbar 之后的类别代码。 我想把菜单按钮放在类别的开头。

 @override
    Widget build(BuildContext context) {
        return Padding(
          padding: const EdgeInsets.symmetric(vertical: kDefaultPaddin),
          child: SizedBox(
              height: 25,
              child: Row(
                children: <Widget>[
                  IconButton(icon: Icon(Icons.menu), onPressed: () {}),
                  ListView.builder(
                      scrollDirection: Axis.horizontal,
                      itemCount: categories.length,
                      itemBuilder: (context, index) => buildCategory(index))
                ],
              )),
        );
      }

然后这发生了

我的代码有什么问题?

您需要使用Expanded小部件包装ListView

我以您的代码为例添加了一个演示:

 @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.symmetric(vertical: kDefaultPaddin),
      child: SizedBox(
        height: 25,
        child: Row(
          children: <Widget>[
            IconButton(icon: Icon(Icons.menu), onPressed: () {}),
            // wrap with expanded widget
            Expanded( // new line
              child: ListView.builder(
                  scrollDirection: Axis.horizontal,
                  itemCount: categories.length,
                  itemBuilder: (context, index) => buildCategory(index)),
            )
          ],
        ),
      ),
    );
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM