// Copyright 2018-present the Flutter authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. import 'package:flutter/material.dart'; import '../model/product.dart'; import 'product_card.dart'; class TwoProductCardColumn extends StatelessWidget { TwoProductCardColumn({ this.bottom, this.top, }) : assert(bottom != null); final Product bottom, top; @override Widget build(BuildContext context) { return LayoutBuilder( builder: (BuildContext context, BoxConstraints constraints) { const spacerHeight = 44.0; double heightOfCards = (constraints.biggest.height - spacerHeight) / 2.0; double heightOfImages = heightOfCards - ProductCard.kTextBoxHeight; double imageAspectRatio = (heightOfImages >= 0.0 && constraints.biggest.width > heightOfImages) ? constraints.biggest.width / heightOfImages : 33 / 49; return ListView( children: [ Padding( padding: EdgeInsetsDirectional.only(start: 28.0), child: top != null ? ProductCard( imageAspectRatio: imageAspectRatio, product: top, ) : SizedBox( height: heightOfCards > 0 ? heightOfCards : spacerHeight, ), ), SizedBox(height: spacerHeight), Padding( padding: EdgeInsetsDirectional.only(end: 28.0), child: ProductCard( imageAspectRatio: imageAspectRatio, product: bottom, ), ), ], ); }); } } class OneProductCardColumn extends StatelessWidget { OneProductCardColumn({this.product}); final Product product; @override Widget build(BuildContext context) { return ListView( reverse: true, children: [ SizedBox( height: 40.0, ), ProductCard( product: product, ), ], ); } }