Skip to content

Commit 91e7218

Browse files
committed
use the new SliverWithKeepAliveWidget
2 parents d8ca660 + 1adb147 commit 91e7218

15 files changed

+244
-91
lines changed

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
## 0.2.5
2+
### Changed
3+
* Use the new SliverWithKeepAliveWidget.
4+
5+
## 0.2.4
6+
### Fixed
7+
* Dart 2.1 mixin support.
8+
9+
## 0.2.3
10+
### Fixed
11+
* Fix the rtl support (https://github.com/letsar/flutter_staggered_grid_view/issues/17).
12+
13+
## 0.2.2
14+
* Add Dart 2 support.
15+
116
## 0.2.1
217
* Fix #10 `StatefulWidget.createState must return a subtype of State<AutomaticKeepAliveVariableSizeBox>`.
318

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ In the `pubspec.yaml` of your flutter project, add the following dependency:
2828
```yaml
2929
dependencies:
3030
...
31-
flutter_staggered_grid_view: "^0.2.1"
31+
flutter_staggered_grid_view: "^0.2.5"
3232
```
3333
3434
In your library add the following import:

example/lib/example_6.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,7 @@ class _Example06Tile extends StatelessWidget {
9999
@required this.onSelectedItemChanged,
100100
@required this.maxSize,
101101
@required this.isSelected,
102-
})
103-
: super(key: key);
102+
}) : super(key: key);
104103

105104
final int index;
106105
final int size;
@@ -190,8 +189,7 @@ class _TileButton {
190189
@required this.onTap,
191190
@required bool isLeft,
192191
@required bool isTop,
193-
})
194-
: bottom = isTop ? null : 0.0,
192+
}) : bottom = isTop ? null : 0.0,
195193
top = isTop ? 0.0 : null,
196194
left = isLeft ? 0.0 : null,
197195
right = isLeft ? null : 0.0;

example/lib/example_7.dart

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,30 @@ class Example07 extends StatelessWidget {
1414
mainAxisSpacing: 0.0,
1515
crossAxisSpacing: 0.0,
1616
children: <Widget>[
17-
new _Tile('https://cdn.pixabay.com/photo/2013/04/07/21/30/croissant-101636_960_720.jpg',1),
18-
new _Tile('https://cdn.pixabay.com/photo/2016/01/22/16/42/eiffel-tower-1156146_960_720.jpg',2),
19-
new _Tile('https://cdn.pixabay.com/photo/2016/10/22/20/34/two-types-of-wine-1761613_960_720.jpg',3),
20-
new _Tile('https://cdn.pixabay.com/photo/2016/10/21/14/50/plouzane-1758197_960_720.jpg',4),
21-
new _Tile('https://cdn.pixabay.com/photo/2016/11/16/10/59/mountains-1828596_960_720.jpg',5),
22-
new _Tile('https://cdn.pixabay.com/photo/2013/04/13/18/42/the-eiffel-tower-103417_960_720.jpg',6),
23-
new _Tile('https://cdn.pixabay.com/photo/2017/08/24/22/37/gyrfalcon-2678684_960_720.jpg',7),
24-
new _Tile('https://cdn.pixabay.com/photo/2013/01/17/08/25/sunset-75159_960_720.jpg',8),
17+
new _Tile(
18+
'https://cdn.pixabay.com/photo/2013/04/07/21/30/croissant-101636_960_720.jpg',
19+
1),
20+
new _Tile(
21+
'https://cdn.pixabay.com/photo/2016/01/22/16/42/eiffel-tower-1156146_960_720.jpg',
22+
2),
23+
new _Tile(
24+
'https://cdn.pixabay.com/photo/2016/10/22/20/34/two-types-of-wine-1761613_960_720.jpg',
25+
3),
26+
new _Tile(
27+
'https://cdn.pixabay.com/photo/2016/10/21/14/50/plouzane-1758197_960_720.jpg',
28+
4),
29+
new _Tile(
30+
'https://cdn.pixabay.com/photo/2016/11/16/10/59/mountains-1828596_960_720.jpg',
31+
5),
32+
new _Tile(
33+
'https://cdn.pixabay.com/photo/2013/04/13/18/42/the-eiffel-tower-103417_960_720.jpg',
34+
6),
35+
new _Tile(
36+
'https://cdn.pixabay.com/photo/2017/08/24/22/37/gyrfalcon-2678684_960_720.jpg',
37+
7),
38+
new _Tile(
39+
'https://cdn.pixabay.com/photo/2013/01/17/08/25/sunset-75159_960_720.jpg',
40+
8),
2541
],
2642
staggeredTiles: const <StaggeredTile>[
2743
const StaggeredTile.fit(2),
@@ -54,8 +70,14 @@ class _Tile extends StatelessWidget {
5470
padding: const EdgeInsets.all(4.0),
5571
child: new Column(
5672
children: <Widget>[
57-
new Text('Image number $index',style: const TextStyle(fontWeight: FontWeight.bold),),
58-
new Text('Vincent Van Gogh',style: const TextStyle(color: Colors.grey),),
73+
new Text(
74+
'Image number $index',
75+
style: const TextStyle(fontWeight: FontWeight.bold),
76+
),
77+
new Text(
78+
'Vincent Van Gogh',
79+
style: const TextStyle(color: Colors.grey),
80+
),
5981
],
6082
),
6183
)
@@ -64,4 +86,3 @@ class _Tile extends StatelessWidget {
6486
);
6587
}
6688
}
67-

example/lib/example_8.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ final Uint8List kTransparentImage = new Uint8List.fromList(<int>[
7373

7474
List<IntSize> _createSizes(int count) {
7575
Random rnd = new Random();
76-
return new List.generate(count, (i) => new IntSize((rnd.nextInt(500) + 200), rnd.nextInt(800) + 200));
76+
return new List.generate(count,
77+
(i) => new IntSize((rnd.nextInt(500) + 200), rnd.nextInt(800) + 200));
7778
}
7879

7980
class Example08 extends StatelessWidget {

example/lib/example_tests.dart

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,33 @@ import 'package:flutter/material.dart';
55
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
66

77
class ExampleTests extends StatelessWidget {
8-
ExampleTests() : products = List.generate(50, (i)=> Product('test $i'));
8+
ExampleTests() : products = List.generate(50, (i) => Product('test $i'));
99

1010
final List<Product> products;
1111

1212
@override
1313
Widget build(BuildContext context) {
1414
return new Scaffold(
15-
appBar: new AppBar(
16-
title: new Text('random dynamic tile sizes'),
17-
),
18-
body: CustomScrollView(
19-
slivers: <Widget>[
20-
SliverStaggeredGrid.countBuilder(
21-
crossAxisCount: 2,
22-
staggeredTileBuilder: (_) => StaggeredTile.fit(1),
23-
itemBuilder: (context, index) => ProductGridItem(products[index],),
24-
itemCount: products.length,
25-
),
26-
],
27-
)
28-
);
15+
appBar: new AppBar(
16+
title: new Text('random dynamic tile sizes'),
17+
),
18+
body: CustomScrollView(
19+
slivers: <Widget>[
20+
SliverStaggeredGrid.countBuilder(
21+
crossAxisCount: 2,
22+
staggeredTileBuilder: (_) => StaggeredTile.fit(1),
23+
itemBuilder: (context, index) => ProductGridItem(
24+
products[index],
25+
),
26+
itemCount: products.length,
27+
),
28+
],
29+
));
2930
}
3031
}
3132

3233
class Leaf extends StatefulWidget {
33-
const Leaf({ Key key, this.child }) : super(key: key);
34+
const Leaf({Key key, this.child}) : super(key: key);
3435
final Widget child;
3536
@override
3637
_LeafState createState() => new _LeafState();
@@ -83,13 +84,12 @@ class ProductGridItem extends StatelessWidget {
8384
@override
8485
Widget build(BuildContext context) {
8586
return new Card(
86-
child: Container(
87-
color: Colors.blue,
88-
height: 80.0,
89-
child: Center(
90-
child: Text(product.name),
91-
),
92-
)
93-
);
87+
child: Container(
88+
color: Colors.blue,
89+
height: 80.0,
90+
child: Center(
91+
child: Text(product.name),
92+
),
93+
));
9494
}
9595
}

example/lib/home.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,7 @@ class HomeHeaderTile extends StatelessWidget {
9898
child: new Text(
9999
title,
100100
textAlign: TextAlign.center,
101-
style: Theme
102-
.of(context)
101+
style: Theme.of(context)
103102
.primaryTextTheme
104103
.title
105104
.copyWith(color: backgroundColor),

example/lib/staggered_grid_view_page.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ class StaggeredGridViewPage extends StatelessWidget {
1111
@required this.tiles,
1212
this.mainAxisSpacing: 4.0,
1313
this.crossAxisSpacing: 4.0,
14-
})
15-
: _staggeredGridViewMode = _StaggeredGridViewMode.count,
14+
}) : _staggeredGridViewMode = _StaggeredGridViewMode.count,
1615
maxCrossAxisExtent = null;
1716

1817
const StaggeredGridViewPage.extent({
@@ -21,8 +20,7 @@ class StaggeredGridViewPage extends StatelessWidget {
2120
@required this.tiles,
2221
this.mainAxisSpacing: 4.0,
2322
this.crossAxisSpacing: 4.0,
24-
})
25-
: _staggeredGridViewMode = _StaggeredGridViewMode.extent,
23+
}) : _staggeredGridViewMode = _StaggeredGridViewMode.extent,
2624
crossAxisCount = null;
2725

2826
static const EdgeInsetsGeometry padding =

example/lib/tile_widget.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
import 'package:flutter/foundation.dart';
32
import 'package:flutter/material.dart';
43
import 'package:flutter/widgets.dart';

lib/src/rendering/sliver_staggered_grid.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import 'package:flutter/rendering.dart';
66

77
import 'package:flutter_staggered_grid_view/src/widgets/staggered_tile.dart';
88
import 'package:flutter_staggered_grid_view/src/rendering/sliver_variable_size_box_adaptor.dart';
9-
import 'package:flutter_staggered_grid_view/src/rendering/tile_container_render_object_mixin.dart';
109

1110
/// Signature for a function that creates [StaggeredTile] for a given index.
1211
typedef StaggeredTile IndexedStaggeredTileBuilder(int index);
@@ -444,7 +443,7 @@ class RenderSliverStaggeredGrid extends RenderSliverVariableSizeBoxAdaptor {
444443
crossAxisExtent: configuration.cellStride * tile.crossAxisCellCount -
445444
configuration.crossAxisSpacing,
446445
crossAxisCellCount: tile.crossAxisCellCount,
447-
blockIndex: blockIndex,
446+
blockIndex: block.index,
448447
);
449448
return geometry;
450449
}

0 commit comments

Comments
 (0)