flutter basics

 

Navigation data transmission and reception

import ' package: flutter / material.dart ' ; 

class Product { 
  final String title; // Product title 
  final String description; // Product description 
  Product ( this .title, this .description); 
} 

void main () { 
  runApp (MaterialApp ( 
    title: ' Navigation data transmission and reception ' , 
    home: ProductList ( 
        products: 
            List.generate ( 20 , (i) => Product ( ' 阿 强产品$ i ' , ' This is the product details, ID: $ 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}')));
  }
}

 

Guess you like

Origin www.cnblogs.com/cap-rq/p/12756232.html