能否创建VlcPlayerController类型的二维数组?参数类型不匹配报错如何解决?
错误原因
你当前报错的核心是List.filled方法传入的填充值为字符串'',与你声明的数组元素类型VlcPlayerController不匹配,所以触发类型校验错误。
实现方案
VlcPlayerController类型的二维数组完全可以实现,根据使用场景可选两种实现方式:
- 方案1:初始化阶段直接创建可用控制器实例
注意不要使用List.filled创建对象类型数组,该方法会复用同一个对象实例,修改任意元素会影响所有同批次生成的元素,改为嵌套List.generate生成独立实例即可:List<List<VlcPlayerController>> twoDList = List.generate(3, (rowIndex) => List.generate(3, (colIndex) => // 替换为你实际的VlcPlayerController初始化参数即可 VlcPlayerController.network( '你的视频资源路径', // 可补充其他初始化配置 ), growable: false), growable: false); - 方案2:先初始化可空数组,后续使用时再赋值
如果暂时没有控制器初始化参数,可以先声明可空类型数组,后续按需赋值:// 初始化可空类型二维数组 List<List<VlcPlayerController?>> twoDList = List.generate(3, (i) => List.filled(3, null, growable: false), growable: false); // 后续使用时赋值 twoDList[0][1] = VlcPlayerController.network('你的视频资源路径');
内容的提问来源于stack exchange,提问作者user3662974
相关产品推荐
相关产品推荐

