赞
踩
ListView是最常用的可滚动widget,它可以沿一个方向线性排布所有子widget。
import 'package:flutter/material.dart'; void main() => runApp(new MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { final title = '基础列表'; return MaterialApp( title: 'Listview', home: Scaffold( appBar: AppBar( title: Text('Listview'), ), body: new ListView( children: <Widget>[ ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ListTile( title: Text('Alarm'), leading: Icon(Icons.alarm), ), ], ) )); } }
默认是垂直方向的,如果是水平方向
scrollDirection: Axis.horizontal,
import 'package:flutter/material.dart'; void main() => runApp(new MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { // final title = '基础列表'; return MaterialApp( title: 'Listview', home: Scaffold( appBar: AppBar( title: Text('Listview'), ), body: Container( margin: EdgeInsets.symmetric(vertical: 20.0), height: 200.0, child: ListView( scrollDirection: Axis.horizontal, children: <Widget>[ Container( width: 160.0, color: Colors.lightBlue, ), Container( width: 160.0, color: Colors.lightGreen, child: Column( children: <Widget>[ Text( '水平', style: TextStyle(fontSize: 30.0), ), Text( '排序', style: TextStyle(color: Colors.red), ) ], ), ), Container( width: 160.0, color: Colors.red, ), Container( width: 160.0, color: Colors.grey, ), ], ), ))); } }
import 'package:flutter/material.dart'; void main() => runApp(new MyApp( //生成500数据 items:new List<String>.generate(500, (i)=>"Item $i") )); class MyApp extends StatelessWidget { final List<String> items; MyApp({Key key,@required this.items}):super(key:key); @override Widget build(BuildContext context) { final title = '基础列表 itemBuilder'; return MaterialApp( title: 'Listview', home: Scaffold( appBar: AppBar( title: Text(title), ), body: new ListView.builder( itemCount: items.length, itemBuilder: (context , index){ return new ListTile( leading: new Icon(Icons.phone), title: new Text('${items[index]}'), ); }, ) ) ); } }
GridView可以构建一个二维网格列表
import 'package:flutter/material.dart'; void main() => runApp(new MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { final title = '基础列表 GridView'; return MaterialApp( title: 'GridView', home: Scaffold( appBar: AppBar( title: Text(title), ), //count 构造网格 body: new GridView.count( primary: false, padding: const EdgeInsets.all(20.0), crossAxisSpacing: 30.0, crossAxisCount: 3, children: <Widget>[ const Text('文本一'), const Text('文本二'), const Text('文本三'), const Text('文本四'), const Text('文本五'), const Text('文本六'), const Text('文本七'), const Text('文本八'), const Text('文本九'), ], ))); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。