Make Demos in flutter_gallery more accessible (#10832)

Remaining known issues are #10831 and #10830.
This commit is contained in:
Michael Goderbauer 2017-06-20 11:09:57 -07:00 committed by GitHub
parent 7d16a96500
commit 0e1b652d53
3 changed files with 109 additions and 101 deletions

View File

@ -70,12 +70,14 @@ class _ContactItem extends StatelessWidget {
) )
)); ));
} }
return new Padding( return new MergeSemantics(
padding: const EdgeInsets.symmetric(vertical: 16.0), child: new Padding(
child: new Row( padding: const EdgeInsets.symmetric(vertical: 16.0),
mainAxisAlignment: MainAxisAlignment.spaceBetween, child: new Row(
children: rowChildren mainAxisAlignment: MainAxisAlignment.spaceBetween,
) children: rowChildren
)
),
); );
} }
} }

View File

@ -246,41 +246,43 @@ class RecipeCard extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return new GestureDetector( return new MergeSemantics(
onTap: onTap, child: new GestureDetector(
child: new Card( onTap: onTap,
child: new Column( child: new Card(
crossAxisAlignment: CrossAxisAlignment.start, child: new Column(
children: <Widget>[ crossAxisAlignment: CrossAxisAlignment.start,
new Hero( children: <Widget>[
tag: recipe.imagePath, new Hero(
child: new Image.asset(recipe.imagePath, fit: BoxFit.contain) tag: recipe.imagePath,
), child: new Image.asset(recipe.imagePath, fit: BoxFit.contain)
new Expanded(
child: new Row(
children: <Widget>[
new Padding(
padding: const EdgeInsets.all(16.0),
child: new Image.asset(
recipe.ingredientsImagePath,
width: 48.0,
height: 48.0,
),
),
new Expanded(
child: new Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Text(recipe.name, style: titleStyle, softWrap: false, overflow: TextOverflow.ellipsis),
new Text(recipe.author, style: authorStyle),
],
),
),
],
), ),
), new Expanded(
], child: new Row(
children: <Widget>[
new Padding(
padding: const EdgeInsets.all(16.0),
child: new Image.asset(
recipe.ingredientsImagePath,
width: 48.0,
height: 48.0,
),
),
new Expanded(
child: new Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Text(recipe.name, style: titleStyle, softWrap: false, overflow: TextOverflow.ellipsis),
new Text(recipe.author, style: authorStyle),
],
),
),
],
),
),
],
),
), ),
), ),
); );

View File

@ -252,39 +252,41 @@ class _Heading extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final Size screenSize = MediaQuery.of(context).size; final Size screenSize = MediaQuery.of(context).size;
final ShrineTheme theme = ShrineTheme.of(context); final ShrineTheme theme = ShrineTheme.of(context);
return new SizedBox( return new MergeSemantics(
height: screenSize.width > screenSize.height child: new SizedBox(
? (screenSize.height - kToolbarHeight) * 0.85 height: screenSize.width > screenSize.height
: (screenSize.height - kToolbarHeight) * 0.70, ? (screenSize.height - kToolbarHeight) * 0.85
child: new Container( : (screenSize.height - kToolbarHeight) * 0.70,
decoration: new BoxDecoration( child: new Container(
color: theme.cardBackgroundColor, decoration: new BoxDecoration(
border: new Border(bottom: new BorderSide(color: theme.dividerColor)), color: theme.cardBackgroundColor,
), border: new Border(bottom: new BorderSide(color: theme.dividerColor)),
child: new CustomMultiChildLayout( ),
delegate: new _HeadingLayout(), child: new CustomMultiChildLayout(
children: <Widget>[ delegate: new _HeadingLayout(),
new LayoutId( children: <Widget>[
id: _HeadingLayout.price, new LayoutId(
child: new _FeaturePriceItem(product: product), id: _HeadingLayout.price,
), child: new _FeaturePriceItem(product: product),
new LayoutId( ),
id: _HeadingLayout.image, new LayoutId(
child: new Image.asset(product.imageAsset, fit: BoxFit.cover), id: _HeadingLayout.image,
), child: new Image.asset(product.imageAsset, fit: BoxFit.cover),
new LayoutId( ),
id: _HeadingLayout.title, new LayoutId(
child: new Text(product.featureTitle, style: theme.featureTitleStyle), id: _HeadingLayout.title,
), child: new Text(product.featureTitle, style: theme.featureTitleStyle),
new LayoutId( ),
id: _HeadingLayout.description, new LayoutId(
child: new Text(product.featureDescription, style: theme.featureStyle), id: _HeadingLayout.description,
), child: new Text(product.featureDescription, style: theme.featureStyle),
new LayoutId( ),
id: _HeadingLayout.vendor, new LayoutId(
child: new _VendorItem(vendor: product.vendor), id: _HeadingLayout.vendor,
), child: new _VendorItem(vendor: product.vendor),
], ),
],
),
), ),
), ),
); );
@ -303,35 +305,37 @@ class _ProductItem extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return new Card( return new MergeSemantics(
child: new Stack( child: new Card(
children: <Widget>[ child: new Stack(
new Column( children: <Widget>[
children: <Widget>[ new Column(
new Align( children: <Widget>[
alignment: FractionalOffset.centerRight, new Align(
child: new _ProductPriceItem(product: product), alignment: FractionalOffset.centerRight,
), child: new _ProductPriceItem(product: product),
new Container(
width: 144.0,
height: 144.0,
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: new Hero(
tag: product.tag,
child: new Image.asset(product.imageAsset, fit: BoxFit.contain),
),
), ),
new Padding( new Container(
padding: const EdgeInsets.symmetric(horizontal: 8.0), width: 144.0,
child: new _VendorItem(vendor: product.vendor), height: 144.0,
), padding: const EdgeInsets.symmetric(horizontal: 8.0),
], child: new Hero(
), tag: product.tag,
new Material( child: new Image.asset(product.imageAsset, fit: BoxFit.contain),
type: MaterialType.transparency, ),
child: new InkWell(onTap: onPressed), ),
), new Padding(
], padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: new _VendorItem(vendor: product.vendor),
),
],
),
new Material(
type: MaterialType.transparency,
child: new InkWell(onTap: onPressed),
),
],
),
), ),
); );
} }