
- 使用ListTile创建ListView
- 自定义ListTile闯将ListView
- 使用Builder创建ListView
import 'package:flutter/material.dart';
class ListViewDemo extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return ListViewState();
}
}
class ListViewState extends State<ListViewDemo> {
var list = ["a", "b", "c", "d"];
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView(
children: <Widget>[
ListView(
shrinkWrap: true,
children: getDefaultList(),
),
ListView(
shrinkWrap: true,
children: getMyList(),
),
getBuilderList()
],
));
}
getDefaultList() {
return list.map((String f) {
return ListTile(
isThreeLine: true,
dense: false,
leading: new CircleAvatar(
child: Text(f),
),
title: Text('item的标题'),
subtitle: Text('item的内容'),
trailing: Icon(
Icons.add,
color: Colors.red,
),
);
}).toList();
}
getMyList() {
return list.map((String f) {
return Container(
padding: EdgeInsets.all(10),
child: Row(
children: <Widget>[
CircleAvatar(
backgroundImage: AssetImage("assets/images/home"),
),
Expanded(child: Container(padding:EdgeInsets.only(left:40),child: Text(f),)),
],
),
);
}).toList();
}
getBuilderList() {
return ListView.builder(
shrinkWrap: true,
itemCount: list.length,
itemBuilder: (BuildContext context, int index) {
return Text(list[index],textAlign: TextAlign.center,);
});
}
}