Skip to content

Commit ae42541

Browse files
ADJUSTMENT: Changed GridSceneLayout to use default item decorator and background to match existing behavior of FlexSceneLayout.
1 parent 6b4cdb7 commit ae42541

File tree

1 file changed

+40
-30
lines changed

1 file changed

+40
-30
lines changed

lib/src/scenes/layouts/grid_layout.dart

Lines changed: 40 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import 'package:flutter/cupertino.dart';
2-
import 'package:flutter/material.dart' show Colors;
32
import 'package:flutter/widgets.dart';
43
import 'package:flutter_test/flutter_test.dart';
54
import 'package:flutter_test_goldens/flutter_test_goldens.dart';
@@ -59,6 +58,25 @@ class GridGoldenScene extends StatelessWidget {
5958

6059
@override
6160
Widget build(BuildContext context) {
61+
return DefaultTextStyle(
62+
style: GoldenSceneTheme.current.defaultTextStyle,
63+
child: GoldenSceneBounds(
64+
child: Stack(
65+
children: [
66+
Positioned.fill(
67+
child: _buildBackground(context),
68+
),
69+
Padding(
70+
padding: spacing.around,
71+
child: _buildGoldens(),
72+
),
73+
],
74+
),
75+
),
76+
);
77+
}
78+
79+
Widget _buildGoldens() {
6280
final entries = goldens.entries.toList();
6381

6482
final rows = <TableRow>[];
@@ -77,16 +95,18 @@ class GridGoldenScene extends StatelessWidget {
7795
top: row > 0 ? defaultGridSpacing.between : 0,
7896
left: col > 0 ? defaultGridSpacing.between : 0,
7997
),
80-
child: _buildItem(
81-
context,
82-
entries[index].key.metadata,
83-
Image.memory(
84-
key: entries[index].value,
85-
entries[index].key.pngBytes,
86-
width: entries[index].key.size.width,
87-
height: entries[index].key.size.height,
88-
),
89-
),
98+
child: Builder(builder: (context) {
99+
return _decorator(
100+
context,
101+
entries[index].key.metadata,
102+
Image.memory(
103+
key: entries[index].value,
104+
entries[index].key.pngBytes,
105+
width: entries[index].key.size.width,
106+
height: entries[index].key.size.height,
107+
),
108+
);
109+
}),
90110
),
91111
);
92112
}
@@ -98,28 +118,18 @@ class GridGoldenScene extends StatelessWidget {
98118
);
99119
}
100120

101-
return DefaultTextStyle(
102-
style: GoldenSceneTheme.current.defaultTextStyle,
103-
child: GoldenSceneBounds(
104-
child: ColoredBox(
105-
color: Colors.white,
106-
child: Padding(
107-
padding: spacing.around,
108-
child: Table(
109-
defaultColumnWidth: IntrinsicColumnWidth(),
110-
children: rows,
111-
),
112-
),
113-
),
114-
),
121+
return Table(
122+
defaultColumnWidth: IntrinsicColumnWidth(),
123+
children: rows,
115124
);
116125
}
117126

118-
Widget _buildItem(BuildContext context, GoldenScreenshotMetadata metadata, Widget content) {
119-
if (itemDecorator == null) {
120-
return content;
121-
}
127+
Widget _decorator(BuildContext context, GoldenScreenshotMetadata metadata, Widget child) {
128+
final itemDecorator = this.itemDecorator ?? GoldenSceneTheme.current.itemDecorator;
129+
return itemDecorator(context, metadata, child);
130+
}
122131

123-
return itemDecorator!(context, metadata, content);
132+
Widget _buildBackground(BuildContext context) {
133+
return (background ?? GoldenSceneTheme.current.background).build(context);
124134
}
125135
}

0 commit comments

Comments
 (0)