android - 未为类型“Type”定义运算符“[]”。Flutter ListView 构建器
问题描述
我正在制作水平ListView.builder
的“卡片”,但在itemBuilder
选项中,在 item 参数中,我输入buildCard(item: int [index])
了但它向我显示了错误:
未为类型“Type”定义运算符“[]”。尝试定义运算符'[]'。
我想解决这个错误。
我的代码:
import 'package:flutter/material.dart';
class HomePage extends StatefulWidget {
const HomePage({Key? key}) : super(key: key);
@override
_HomePageState createState() => _HomePageState();
}
class CardItem {
final String assetImage;
final String title;
const CardItem({
required this.assetImage,
required this.title,
});
}
class _HomePageState extends State<HomePage> {
List<CardItem> items = [
CardItem(title: 'Card1', assetImage: 'images/movie/01.webp'),
CardItem(title: 'Card2', assetImage: 'images/movie/02.png'),
CardItem(title: 'Card3', assetImage: 'images/movie/03.png'),
];
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
margin: const EdgeInsets.symmetric(vertical: 20.0),
height: 250,
child: ListView.separated(
itemBuilder: (context, index) => buildCard(item: int[index]),
separatorBuilder: (context, _) => SizedBox(width: 12),
itemCount: 3)));
}
Widget buildCard({
required CardItem item,
}) =>
Container(
width: 170,
color: Colors.red,
child: Column(
children: [
Expanded(
child: Image(
image: AssetImage(item.assetImage),
fit: BoxFit.cover,
),
)
],
));
}
解决方案
您需要在 buildCard(item: items[index]) 中使用项目列表而不是 int
class _HomePageState extends State<HomePage> {
List<CardItem> items = [
CardItem(title: 'Card1', assetImage: 'images/movie/01.webp'),
CardItem(title: 'Card2', assetImage: 'images/movie/02.png'),
CardItem(title: 'Card3', assetImage: 'images/movie/03.png'),
];
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
margin: const EdgeInsets.symmetric(vertical: 20.0),
child: ListView.separated(
itemBuilder: (context, index) => buildCard(item: items[index]),
separatorBuilder: (context, _) => SizedBox(height: 12),
itemCount: 3)));
}
Widget buildCard({
required CardItem item,
}) =>
Container(
width: 170,
height: 250,
color: Colors.red,
child: Column(
children: [
Expanded(
child: Image.network('https://github.com/flutter/plugins/raw/master/packages/video_player/video_player/doc/demo_ipod.gif?raw=true')
,
)
],
));
}
推荐阅读
- sql - 更好的 SQL 风格?
- java - Quarkus/Mutiny 中是否需要递归?
- reactjs - Jest 找不到 Docusaurus 主题/布局模块
- r - 用行的最大值/最小值替换无限值
- javascript - 隐藏chartjs中的所有比例标签
- python - 有没有办法从函数返回的列表中提取项目,然后在下一个函数中使用这些项目?
- angular - 查找值的所有用法(Typescript)
- r - 如何匹配 R 数据框中的行
- python - python-xarray:一维数据的多维坐标
- foreach - 在 Neo4j Cypher 中,如何使用 LOAD CSV、UNWIND/FOREACH 和 WITH 子句进行迭代?