直接上代碼
import 'package:flutter/material.dart';
class Product{
final String title;// 商品標(biāo)題
final String description; // 商品描述
Product(this.title,this.description);
}
void main(){
runApp(MaterialApp(
title: '導(dǎo)航的數(shù)據(jù)傳遞和接受',
home: ProductList(
products:List.generate(
20,
(i)=>Product('商品 $i', '這是一個(gè)商品詳情衩茸,編號(hào)為$i')
)
),
));
}
class ProductList extends StatelessWidget {
final List<Product> products;
ProductList({Key key,@required this.products}):super(key:key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('商品列表'),),
body: ListView.builder(
itemCount: products.length,
itemBuilder: (context,index){
return ListTile(
title: Text(products[index].title),
onTap: (){
Navigator.push(
context,
MaterialPageRoute(
builder: (context)=>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 Scaffold(
appBar: AppBar(title: Text('${product.title}'),),
body: Center(child: Text('${product.description}'),),
);
}
}
效果圖