ListView.builder
最基本的形式需要两个参数:
itemCount
:列表项的总数。itemBuilder
:一个回调函数,用于构建每个列表项。
Dart
ListView.builder(
itemCount: 10, // 列表项总数(这里是10个)
itemBuilder: (context, index) {
// 返回一个Widget作为列表项
return ListTile(
title: Text('项目 $index'),
subtitle: Text('这是第 $index 个项目'),
);
},
)
参数详解
参数 | 说明 |
---|---|
itemCount |
列表项的总数。如果为 null ,则列表会无限滚动(需在 builder 中自行控制边界)。 |
itemBuilder |
回调函数,接收 context 和 index ,返回一个 Widget。 |
scrollDirection |
滚动方向(Axis.vertical 或 Axis.horizontal )。 |
reverse |
是否反向滚动(默认为 false )。 |
shrinkWrap |
是否根据内容自动调整列表大小(适用于列表嵌套在其他滚动组件中)。 |
padding |
列表的内边距。 |
假设你有一个用户列表,需要展示姓名和年龄:
Dart
class User {
final String name;
final int age;
User(this.name, this.age);
}
// 模拟数据
final List<User> users = [
User('张三', 25),
User('李四', 30),
User('王五', 22),
];
// 在 build 方法中使用 ListView.builder
ListView.builder(
itemCount: users.length,
itemBuilder: (context, index) {
final user = users[index];
return ListTile(
leading: CircleAvatar(child: Text(user.name[0])),
title: Text(user.name),
subtitle: Text('年龄: ${user.age}'),
trailing: Icon(Icons.arrow_forward_ios),
onTap: () {
// 点击事件处理
print('点击了 ${user.name}');
},
);
},
)
123