当前位置: 首页 > 知识库问答 >
问题:

无法在我的flutter演示应用程序的listview中显示gridview

凤财
2023-03-14

我正在将我的原生android项目转换为flutter应用程序,在这一点上,我需要在其他小部件下面显示选项网格。

下面是代码

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    Column homeThumb(String icon, String label) {
      Color color = Theme.of(context).primaryColor;

      return new Column(
        mainAxisSize: MainAxisSize.min,
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          new Container(
            margin: const EdgeInsets.all(8.0),
            child: new Image.asset(icon, width: 32.0, height: 32.0),
          ),
          new Container(
            margin: const EdgeInsets.only(top: 8.0),
            child: new Text(
              label,
              textAlign: TextAlign.center,
              style: new TextStyle(
                fontSize: 12.0,
                fontWeight: FontWeight.w400,
                color: color,
              ),
            ),
          ),
        ],
      );
    }

    Widget homeIcon = new Container(
        child: new Column(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: <Widget>[
          new Container(
              margin: const EdgeInsets.only(
                  top: 40.0, left: 8.0, right: 8.0, bottom: 8.0),
              child: new Row(
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: [
                  homeThumb("images/icons/list.png", 'Claim Offers'),
                  homeThumb("images/icons/wallet.png", 'Wallet'),
                  homeThumb("images/icons/cart.png", 'Redeem Offers'),
                ],
              )),
          new Container(
              margin: const EdgeInsets.all(8.0),
              child: new Row(
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: [
                  homeThumb("images/icons/user.png", 'Account'),
                  homeThumb("images/icons/badge.png", 'Merchants'),
                  homeThumb("images/icons/history.png", 'Shopping History'),
                ],
              )),
          new Container(
              margin: const EdgeInsets.all(8.0),
              child: new Row(
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: [
                  homeThumb("images/icons/bell.png", 'Notifications'),
                  homeThumb("images/icons/plane.png", 'Service Request'),
                  homeThumb("images/icons/share.png", 'Share & Earn'),
                ],
              )),


        ]));

    Widget grid = new GridView.count(
      crossAxisCount: 4,
      children: new List<Widget>.generate(16, (index) {
        return new GridTile(
          child: new Card(
              color: Colors.blue.shade200,
              child: new Center(
                child: new Text('tile $index'),
              )
          ),
        );
      }),
    );

    return new MaterialApp(
      title: 'Minkville',
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text('Minkville'),
        ),
        body: new ListView(
          children: [
            new Image.asset(
              'images/slider/img_s1.jpg',
              width: 600.0,
              height: 180.0,
              fit: BoxFit.fill,
            ),
            homeIcon,
            grid

          ],
        ),
      ),
    );
  }
}

I/Flutter(16594):引发另一个异常:“package:flutter/src/rendering/sliver_multi_box_adaptor.dart”:断言失败:line 441 pos 12:“child.hassize”:不是true。I/Flutter(16594):引发另一个异常:RenderBox未布局:RenderRepaintBoundary#199E9 RelayOutBoundary=UP3 NEEDS-PAINT

共有1个答案

冷正信
2023-03-14

您需要将GridView包装成Expand小部件。更多关于这里。

 类似资料:
  • 本文向大家介绍Flutter中ListView 的使用示例,包括了Flutter中ListView 的使用示例的使用技巧和注意事项,需要的朋友参考一下 这个小例子使用的是豆瓣 API 中 正在上映的电影 的开放接口,要实现的主要效果如下: JSON 数据结构 Item 结构 Item 的结构是一个 Card 包含着一个 Row 然后这个 Row 里面左边是一个 Image ,右边是一个 Colum

  • 在本章中,我们将重点介绍如何在CherryPy框架中创建应用程序。 考虑将Photoblog应用程序用于CherryPy的演示应用程序。 Photoblog应用程序是一个普通的博客,但主要文本将是照片代替文本。 Photoblog应用程序的主要功能是开发人员可以更专注于设计和实现。 基本结构 - 实体设计 实体设计应用程序的基本结构。 以下是Photoblog应用程序的实体 - Film Phot

  • 颤振医生-V: 我的操作系统是Ubuntu18.04,我想使用模拟器进行调试,请帮助我。

  • 在我的演示应用程序中,我需要从服务器加载一个2 JSON文件。这两个JSON都有大量数据。我使用Future+async+await调用json,而不是使用runapp创建小部件。在体内,我试图激活一个循环进程指示器。它显示appBar及其内容,以及空的白色页面主体,4或5秒后加载实际主体中的数据。 我的问题是,我需要首先显示CircularProgressIndicator,一旦加载数据,我将调

  • 我目前正在努力使用erlang的OTP观察者。我的应用程序——gen_server和主管——运行良好,但是当我试图使用观察者来查看进程时,我只能在观察者GUI的“应用程序”选项卡中查看“内核”。 这些是导致节点连接的命令,但仅此而已: ------------------------观察家------------------------ /home/erlang#erl-pa ebin/-snam