首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter GridView "type 'List<Widget>不是微件类型的子类型“

Flutter GridView是一个用于展示网格布局的组件,它可以在屏幕上以网格形式显示一组子组件。当在使用GridView时,出现"type 'List<Widget>'不是微件类型的子类型"的错误提示时,通常是由于传递给GridView的子组件列表类型不正确导致的。

解决这个问题的方法是确保传递给GridView的子组件列表是一个有效的Widget类型的列表。以下是一些可能导致这个错误的常见原因和解决方法:

  1. 检查子组件列表的类型:确保传递给GridView的子组件列表是一个有效的Widget类型的列表。如果子组件列表中包含了其他类型的对象,如String或int,会导致这个错误。可以通过在子组件列表前加上<Widget>来明确指定列表的类型,例如:List<Widget> children = [Widget1(), Widget2()];
  2. 检查子组件列表的内容:确保子组件列表中的每个元素都是有效的Widget类型。如果子组件列表中包含了无效的Widget对象,也会导致这个错误。可以逐个检查子组件列表中的每个元素,确保它们都是有效的Widget对象。
  3. 检查子组件列表的生成方式:如果子组件列表是通过某个方法或函数生成的,确保该方法或函数返回的是一个有效的Widget类型的列表。可以在生成子组件列表的方法或函数中添加类型注解,以确保返回的是正确的类型。

总结起来,当出现"type 'List<Widget>'不是微件类型的子类型"的错误提示时,需要检查传递给GridView的子组件列表的类型、内容和生成方式,确保它们都是有效的Widget类型的列表。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Flutter开发:Gridview的使用

    Flutter开发中,表格组件是经常要用到的,表格展示数据也是App开发过程中不可缺少的需求的功能,其实Gridview的属性和ListView的属性很接近,那么本篇文章就来聊聊Flutter开发中表格组件...Gridview常用的几种方式: 1、GridView.count(@required int crossAxisCount) GridView.count的使用,需要传的是int类型的参数,也就是创建固定数量的...的使用,需要传的是double类型的参数,也就是创建横轴上最大可容纳的item,maxCrossAxisExtent表示横轴item的最大宽度; 3、GridView.builder(@required...动态的创建widget,itemBuilder表示子widget构造器; 4、GridView.custom(@required this.gridDelegate,@required this.childrenDelegate...) GridView.custom的使用,通过两个代理方法gridDelegate和childrenDelegate来创建Gridview,其中gridDelegate是进行布局的代理,控制每列或每行的子

    69010

    Flutter可滑动组件

    在Flutter中,我们也有对应的列表Widget,就是ListView。 注意:在Flutter里面想要实现滑动效果,都需要在组件外部包裹滚动的视图。...1.2 默认构造函数 默认构造函数有一个children参数,它接受一个Widget列表(ListWidget>)。这种方式适合只有少量的子组件数量已知且比较少的情况。...因为默认构造器中接收了一组明确的Widget,构造这组Widget时会一次性将所有子组件都初始化,而不是只初始化那些可见的Widget,即默认构造器不存在懒加载功能。...4.2 ScrollController 在Flutter中,Widget并不是最终渲染到屏幕上的元素(真正渲染的是RenderObject),因此通常这种监听事件以及相关的信息并不能直接从Widget...NotificationListener是一个Widget,模板参数T是想监听的通知类型,如果省略,则所有类型通知都会被监听,如果指定特定类型,则只有该类型的通知会被监听。

    7.2K30

    Flutter 构建完整应用手册-列表 顶

    创建一个水平列表 有时,您可能想要创建一个水平滚动而不是垂直滚动的列表。 ListView部件支持开箱即用的水平列表。...路线 使用不同类型的条目创建数据源 将数据源转换为部件列表 1.使用不同类型的条目创建数据源 项目类型 为了在列表中表示不同类型的项目,我们需要为每种类型的项目定义一个类别。...We'll // convert each item into a Widget based on the type of item it is....We'll // convert each item into a Widget based on the type of item it is....创建一个网格列表 在某些情况下,您可能希望将项目显示为网格,而不是显示下一个项目的普通列表。 对于这个任务,我们将使用GridView部件。

    2.6K20

    Flutter 空安全的糖果罐

    的变化 (默认 开启) -t, --type pubsepec.yaml 生成配置的类型 "d" 代表以文件夹方式生成...,包括以下主要功能: 监听元素回收 监听 Viewport 中元素变化 为最后一个元素设置特殊布局 列表倒序特殊布局,类聊天列表 | ---|--- gridview.gif | chat_list.gif...smartDialog 资源选择器 AssetPicker,对标微信的多选资源选择器,99%接近于原生微信的操作,主要包括以下功能: ♻️ 支持基于代理重载的全量自定义 99% 的微信风格 图片资源支持...99% 的微信风格 支持拍照 ☀️ 支持设置曝光参数 ️ 支持捏合缩放 支持录像 ⏱ 支持限制录像时间 支持录像时缩放 支持自定义前景 widget 构建 image | image...您仍然可以对任何类型的列表进行截断,也可以对一个可空类型的列表进行填充。 如果您自定义了列表的类型,例如继承了 ListBase 或者混入了 ListMixin,那么这项改动可能会造成较大的影响。

    1.6K10

    Flutter开发-可滚动组件

    列表 ListWidget> children = const Widget>[], }) 上面参数分为两组:第一组是可滚动组件的公共参数,本章第一节中已经介绍过,不再赘述;第二组是ListView..., ListWidget> children = const Widget>[], }) 我们可以看到,GridView和ListView的大多数参数都是相同的,它们的含义也都相同的,如有疑惑读者可以翻阅...我们唯一需要关注的是gridDelegate参数,类型是SliverGridDelegate,它的作用是控制GridView子组件如何排列(layout)。...上面我们介绍的GridView都需要一个widget数组作为其子元素,这些方式都会提前将所有子widget都构建好,所以只适用于子widget数量比较少时,当子widget比较多时,我们可以通过GridView.builder...是不行的,因为它们本身是可滚动组件而并不是Sliver!

    4.5K20

    Flutter | 滚动组件,ListView,GridVIew等

    列表 ListWidget> children = const Widget>[], }) 复制代码 上面的参数分为两组:第一组是可滚动组件的公共参数,上面已经说过了;第二组是 ListView...这种方式只适合有少量的子组件的情况,因为这种需要将所有 children 都提前创建好(这需要大量的工作),而不是等子 widget 真正显示的时候在创建,也就是说默认构造函数构建的 ListView..., ListWidget> children = const Widget>[], }) 复制代码 GridView 和 ListView 的参数大多数都是相同的,含义也都是相同的,有疑问的可以翻到上面查看...gridDelegate:类型是 SliverGridDelegate,他的作用是控制 GridView 如何排列(layout) SliverGridDelegate 是一个抽象类,定义类 GridView...Widget数组 作为其子元素,这些方式会提前创建好 widget,只适用于 widget 数量较小的时候,当 widget 比较多的时候,可以通过 GridView.builder 来动态创建子 Widget

    8.7K20

    Flutter 布局常用的 widgets(Common layout widgets)

    Container 小结: 添加 padding, margins, 和边界(borders) 能够更好背景颜色和图片 包含一个单独的子widget,这个子widget可以是Row、Column或一个widget...GridView 用GridView来将widget放入一个2维的列表中。 GridView提供了2个预装配好的列表,也可以自己建立自定义列表。 GridView支持滚动。...允许指定子项的最大像素宽度 示例1 - 用GridView.extent GridView.extent指定子项占据的最大宽度 import 'package:flutter/material.dart...Stack 小结: 用来在当前widget上面再盖上一层widget Stack children中的第一个widget放在最下,后面的widget会一层层盖上去 Stack的内容不支持滚动 可以裁剪超出范围的子...Card只有一个子widget,可以是column、row、list、grid或其它组合widget。 默认情况下,Card把自己的尺寸缩小为0像素。可以用SizedBox来指定card的尺寸。

    1.4K30

    ListView&GirdView

    在前面的的文章中我们了解了Flutter中操作提示的用法,包括SnackBar、Dialog、以及BottomSheet,通过这些Widget我们可以很方便的实现对应用操作的提示。...在本篇文章中,我们会进一步对Flutter中常用的Widget进行介绍,有印象的童鞋可能还记得,在前面的文章中我们分享了Row和Colunm的用法,我们也使用这两个Widget完成了一些类似列表的操作,...好的吧,我们还是来看下这两个Widget的用法吧 ListView ---- ListView就是我们常见的列表组件,在平时的应用开发中十分的常见,无论你做的是什么类型的应用都会多多少少会用到ListView...在Flutter中有三种构建ListView的方式,刚才介绍的是最简单的一种,但是却不是最常用的,因为它仅仅适用于已知数量或者较少数量的Item的情况。...的 bool addAutomaticKeepAlives: true, bool addRepaintBoundaries: true, ListWidget> children: const Widget

    1.7K20

    半小时带你入门 Flutter

    由于微信外链限制,推荐阅读等链接无法点击,可点击阅读原文跳转至原文,查看外链。??...Flutter框架将依次构建这些widget,直到构建到最底层的子widget时,这些最低层的widget通常为RenderObject,它会计算并描述widget的几何形状。...GridView 可滚动的网格布局,理解为display:grid GridView提供两个预制list,当GridView检测到内容太长时,会自动滚动。...子列表中的第一个widget是base widget; 随后的子widget被覆盖在基础widget的顶部。Stack的内容不能滚动。有点类似于weex中的设置了absolute的感觉。...技能来说,最大的困难可能是找不到合适的Widget去实现想要的布局或者效果,甚至包括css样式作用于那个Widget,譬如Opacity是一个widget而不是一个css样式~ 所以对于Flutter,

    1.8K20

    GridView滚动列表的顶级用法【flutter20个实例之二】

    一、老套路,先看样式 文章底部源码,是左侧样式,右侧是我实际开发中的展示 ? ? 二、讲解(后附源码) 1.这里主要是用到GridView 组件 GridView是一个可滚动的,2D数组控件。...gridDelegate参数控制子控件的排列,有2个选择: SliverGridDelegateWithFixedCrossAxisCount:交叉轴方向上固定数量,对于垂直方向的GridView来说交叉轴方向指的是水平方向...mainAxisSpacing:主轴方向上2行之间的间隔。 crossAxisSpacing:交叉轴方向上之间的间隔。 childAspectRatio:子控件宽高比。...flutter的一些快捷键 5.当然通过children的方式加载组件并不是个好方式 GridView提供了一些快速构建的方法 ,记住以下常用的两个就行 GridView.builder( gridDelegate...( crossAxisCount: 3, children: List.generate(50, (i) { return Container( height: 80,

    2K20

    GridView组件初体验

    前文我们聊了Flutter的ListView组件,其类似于OC中的UITableView;今天我们来聊聊GridView组件,其实现的效果类似于OC中的UICollectionView。...代码如下: class HomeContent extends StatelessWidget { //创建各个子元素的自定义方法 ListWidget> _getChildren() {...: 10, //交叉轴(默认情况下为横轴)上的子widget之间的距离,即列与列之间的距离(默认) mainAxisSpacing: 10, //主轴(默认情况下为纵轴)上的子widget之间的距离...子Widget元素的宽/高比 ); } } GridView.builder class HomeContent extends StatelessWidget { Widget _getItemBuilder...mainAxisSpacing: 10,//主轴(默认情况下为纵轴)上的子widget之间的距离,即行与行之间的距离(默认) childAspectRatio: 1.0),//子Widget

    54530

    Flutter响应式编程:Streams和BLoC

    ()方法会强制整个Widget(和任何子窗口小部件)重建。...Flutter无法实例化泛型类型 不幸的是,Flutter无法实例化泛型类型,我们必须将BLoC的实例传递给BlocProvider。...InheritedWidget的父级或者子布局发生变化时,这个方法会自动将当前“context”(= BuildContext)注册到要重建的widget当中。...(在2个主要页面之上),负责根据过滤器提供电影列表; 6个页面: 1.HomePage:登陆页面,允许导航到3个子页面; 2.ListPage:将电影列为GridView的页面,允许过滤...理由是,在这个例子中,我们正在操纵假定的无限数量的项目(这不是完全正确但是又有谁关心这个例子)。 这将强制GridView.builder请求显示“最多30个”项目。

    4.2K90
    领券