ListView相當(dāng)于UITableView/UIScrollView,常用屬性:
padding: EdgeInsets.all(20),//設(shè)置內(nèi)邊距上下左右都是20pt
children:<Widget>[],//一個(gè)數(shù)組,里面是Widget,可以理解為cell
scrollDirection:Axis.horizontal,//滾動(dòng)方向,這里是水平滾動(dòng),:Axis.vertical為默認(rèn)值,垂直滾動(dòng)。
ListTile是flutter封裝好的cell組件,常用屬性:
leading: Icon(Icons.home,size: 40,),//左側(cè)的圖片,可以是Image
title: Text('標(biāo)題'),//標(biāo)題
subtitle: Text('副標(biāo)題'),//副標(biāo)題
trailing: Icon(Icons.send),//右側(cè)圖片
基本用法:
class TWListView extends StatelessWidget{
@override
Widget build(BuildContext context) {
return ListView(
padding: EdgeInsets.all(20),
children: <Widget>[
ListTile(leading: Icon(Icons.home,size: 40,),title: Text('標(biāo)題'), subtitle: Text('副標(biāo)題'),trailing: Icon(Icons.send),),//也能放Image
ListTile(leading: Icon(Icons.home,size: 40,),title: Text('標(biāo)題'), subtitle: Text('副標(biāo)題'),trailing: Icon(Icons.send),),
ListTile(leading: Icon(Icons.home,size: 40,),title: Text('標(biāo)題'), subtitle: Text('副標(biāo)題'),trailing: Icon(Icons.send),),
ListTile(leading: Icon(Icons.home,size: 40,),title: Text('標(biāo)題'), subtitle: Text('副標(biāo)題'),trailing: Icon(Icons.send),),
ListTile(leading: Icon(Icons.home,size: 40,),title: Text('標(biāo)題'), subtitle: Text('副標(biāo)題'),trailing: Icon(Icons.send),),
ListTile(leading: Icon(Icons.home,size: 40,),title: Text('標(biāo)題'), subtitle: Text('副標(biāo)題'),trailing: Icon(Icons.send),),
ListTile(leading: Icon(Icons.home,size: 40,),title: Text('標(biāo)題'), subtitle: Text('副標(biāo)題'),trailing: Icon(Icons.send),),
],
);
}
}
動(dòng)態(tài)列表:
可以用Container來(lái)約束ListView的寬高
itemCount: _dataList.length,//數(shù)組元素的個(gè)數(shù)
itemBuilder: //IndexedWidgetBuilder類(lèi)型,此類(lèi)型是一個(gè)返回值是Widget,帶2個(gè)參數(shù)的方法,里面返回ListTile,會(huì)自動(dòng)循環(huán)生成cell,index從0到itemCount-1
class HomeContent extends StatelessWidget{
@override
Widget build(BuildContext context) {
List _dataList = [
'標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題', '標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題', '標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題',
'標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題', '標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題', '標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題',
'標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題', '標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題', '標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題',
'標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題', '標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題', '標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題',
];
return Container(
width: 300,height: 600,
color: Colors.red,
child: ListView.builder(
itemCount: _dataList.length,
itemBuilder: (context,index){
return ListTile(title: Text(_dataList[index]+index.toString()),);
}
),
);
}
}