// Copyright 2019 The Flutter team. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:provider_shopper/models/cart.dart'; class MyCart extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Cart', style: Theme.of(context).textTheme.headline1), backgroundColor: Colors.white, ), body: Container( color: Colors.yellow, child: Column( children: [ Expanded( child: Padding( padding: const EdgeInsets.all(32), child: _CartList(), ), ), Divider(height: 4, color: Colors.black), _CartTotal() ], ), ), ); } } class _CartList extends StatelessWidget { @override Widget build(BuildContext context) { var itemNameStyle = Theme.of(context).textTheme.headline6; var cart = Provider.of(context); return ListView.builder( itemCount: cart.items.length, itemBuilder: (context, index) => ListTile( leading: Icon(Icons.done), title: Text( cart.items[index].name, style: itemNameStyle, ), ), ); } } class _CartTotal extends StatelessWidget { @override Widget build(BuildContext context) { var hugeStyle = Theme.of(context).textTheme.headline1.copyWith(fontSize: 48); return SizedBox( height: 200, child: Center( child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Consumer( builder: (context, cart, child) => Text('\$${cart.totalPrice}', style: hugeStyle)), SizedBox(width: 24), FlatButton( onPressed: () { Scaffold.of(context).showSnackBar( SnackBar(content: Text('Buying not supported yet.'))); }, color: Colors.white, child: Text('BUY'), ), ], ), ), ); } }