![](/img/trans.png)
[英]The operator '[]' isn't defined for the type 'Object Function()'
[英]The operator '[]' isn't defined for the type 'Type'. Flutter ListView Builder
我正在制作“卡片”的水平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]) 中使用 items 列表而不是 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')
,
)
],
));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.