///lib/main.dart
import 'package:flutter/material.dart';
void main() => runApp(MyApp(
//传递参数
items:new List<String>.generate(100, (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){
return MaterialApp(
title: 'Demo',
home: Scaffold(
appBar: new AppBar(title: new Text('title demo')),
body: new ListView.builder(
itemCount: items.length,
itemBuilder: (context,index){
return new ListTile(
title: new Text('${items[index]}'),
);
},
)
),
);
}
}
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('FlutterDemo'),
),
body: LayoutDemo(),
),
);
}
}
class LayoutDemo extends StatelessWidget {
List<Widget> _getListData() {
List<Widget> list = new List();
for (var i = 0; i < 20; i++) {
list.add(
Container(
alignment: Alignment.center,
child: Text(
'这是第$i条数据',
style:TextStyle(color:Colors.white,fontSize:20)
),
color: Colors.blue,
)
);
}
return list;
}
@override
Widget build(BuildContext context) {
return GridView.count(
crossAxisSpacing: 20.0, //水平子 Widget之间的距离
mainAxisSpacing: 20.0, //垂直子 Widget之间的距离
padding: EdgeInsets.all(20),
crossAxisCount: 2, //一行的Widget 数量
childAspectRatio: 0.7, //设置子Widget宽高比例
children: this._getListData(),
);
}
}
效果如下: