第10章路由及导航 -页面跳转发送数据
防采集标记:亢少军老师的课程和资料
import 'package:flutter/material.dart';
class Product {
final String title;
final String description;
Product(this.title, this.description);
}
void main() {
runApp(new MaterialApp(
title: '传递数据示例',
home: new ProductList(
products:
new List.generate(20, (i) => new Product('商品 $i', '这是一个商品详情 $i')),
),
));
}
class ProductList extends StatelessWidget {
final List products;
ProductList({Key key, @required this.products}) : super(key: key);
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("商品列表"),
),
body: new ListView.builder(
itemCount: products.length,
itemBuilder: (context, index) {
return new ListTile(
title: new Text(products[index].title),
onTap: () {
Navigator.push(
context,
new MaterialPageRoute(
builder: (context) =>
new ProductDetail(product: products[index])),
);
},
);
}),
);
}
}
class ProductDetail extends StatelessWidget {
final Product product;
ProductDetail({Key key, @required this.product}) : super(key: key);
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("${product.title}"),
),
body: new Padding(
padding: new EdgeInsets.all(16.0),
child: new Text('${product.description}'),
),
);
}
}
- Flutter技术入门与实战: http://product.dangdang.com/26485813.html
- Flutter交流学习群:894109159
- Flutter开源项目请关注: https://github.com/kangshaojun
- Flutter****:https://edu.****.net/lecturer/2436
@作者: 亢少军