簡體   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