mirror of
https://github.com/flutter/samples.git
synced 2026-07-17 14:32:06 +00:00
[Gallery] Fix directory structure (#312)
This commit is contained in:
80
gallery/lib/studies/shrine/supplemental/product_columns.dart
Normal file
80
gallery/lib/studies/shrine/supplemental/product_columns.dart
Normal file
@@ -0,0 +1,80 @@
|
||||
// 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:gallery/studies/shrine/model/product.dart';
|
||||
import 'package:gallery/studies/shrine/supplemental/product_card.dart';
|
||||
|
||||
class TwoProductCardColumn extends StatelessWidget {
|
||||
const TwoProductCardColumn({
|
||||
@required this.bottom,
|
||||
this.top,
|
||||
@required this.imageAspectRatio,
|
||||
}) : assert(bottom != null);
|
||||
|
||||
static const double spacerHeight = 44;
|
||||
static const double horizontalPadding = 28;
|
||||
|
||||
final Product bottom, top;
|
||||
final double imageAspectRatio;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return LayoutBuilder(builder: (context, constraints) {
|
||||
return ListView(
|
||||
physics: const ClampingScrollPhysics(),
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.only(start: horizontalPadding),
|
||||
child: top != null
|
||||
? MobileProductCard(
|
||||
imageAspectRatio: imageAspectRatio,
|
||||
product: top,
|
||||
)
|
||||
: SizedBox(
|
||||
height: spacerHeight,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: spacerHeight),
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.only(end: horizontalPadding),
|
||||
child: MobileProductCard(
|
||||
imageAspectRatio: imageAspectRatio,
|
||||
product: bottom,
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
class OneProductCardColumn extends StatelessWidget {
|
||||
const OneProductCardColumn({
|
||||
this.product,
|
||||
@required this.reverse,
|
||||
});
|
||||
|
||||
final Product product;
|
||||
|
||||
// Whether the product column should align to the bottom.
|
||||
final bool reverse;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ListView(
|
||||
physics: const ClampingScrollPhysics(),
|
||||
reverse: reverse,
|
||||
children: [
|
||||
const SizedBox(
|
||||
height: 40,
|
||||
),
|
||||
MobileProductCard(
|
||||
product: product,
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user