Skip to content

Commit f359201

Browse files
committed
Fix #7
1 parent 8489ae7 commit f359201

11 files changed

+361
-127
lines changed

.idea/workspace.xml

+259-107
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## [0.1.5] - [2019.03.10]
2+
3+
* Fix findRenderObject is null
4+
15
## [0.1.4] - [2018.10.19]
26
* Fix display items when itemCount changes
37

example/lib/main.dart

+11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:example/buildin_transformers.dart';
22
import 'package:example/images.dart';
3+
import 'package:example/screens/ProductListView.dart';
34
import 'package:example/welcome.dart';
45
import 'package:example/zero.dart';
56
import 'package:flutter/material.dart';
@@ -90,6 +91,16 @@ class _MyHomePageState extends State<MyHomePage> {
9091
return new Scaffold(
9192
appBar: new AppBar(
9293
title: new Text(widget.title),
94+
actions: <Widget>[
95+
new InkWell(
96+
child: new Text("route"),
97+
onTap: () {
98+
Navigator.push(context, new MaterialPageRoute(builder: (c) {
99+
return new ProductListView();
100+
}));
101+
},
102+
)
103+
],
93104
),
94105
body: new Column(
95106
children: <Widget>[
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import 'package:example/buildin_transformers.dart';
2+
import 'package:flutter/material.dart';
3+
4+
import 'package:transformer_page_view/transformer_page_view.dart';
5+
6+
class ProductDetailView extends StatelessWidget {
7+
@override
8+
Widget build(BuildContext context) {
9+
// TODO: implement build
10+
return new Scaffold(
11+
appBar: new AppBar(),
12+
body: new Center(
13+
child: new Text("Detail"),
14+
),
15+
);
16+
}
17+
}
+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import 'package:example/screens/ProductDetailView.dart';
2+
import 'package:flutter/material.dart';
3+
4+
import 'package:transformer_page_view/transformer_page_view.dart';
5+
6+
class ProductListView extends StatefulWidget {
7+
@override
8+
State<StatefulWidget> createState() {
9+
return new ProductListViewState();
10+
}
11+
}
12+
13+
class ProductListViewState extends State<ProductListView> {
14+
@override
15+
Widget build(BuildContext context) {
16+
return new Scaffold(
17+
appBar: new AppBar(
18+
title: new Text("ProductList"),
19+
),
20+
body: new ListView(
21+
children: <Widget>[
22+
// new SizedBox(
23+
// height: 1000.0,
24+
// child: new Container(
25+
// color: Colors.greenAccent,
26+
// ),
27+
// ),
28+
new SizedBox(
29+
child: new TransformerPageView(
30+
viewportFraction: 0.8,
31+
itemCount: 10,
32+
transformer: new PageTransformerBuilder(builder: (w, i) {
33+
return w;
34+
}),
35+
itemBuilder: (c, i) {
36+
return new InkWell(
37+
onTap: () {
38+
Navigator.push(context, new MaterialPageRoute(builder: (c) {
39+
return new ProductDetailView();
40+
}));
41+
},
42+
child: new Container(
43+
child: new Text("$i"),
44+
color: Colors.black26,
45+
),
46+
);
47+
},
48+
),
49+
height: 100.0,
50+
)
51+
],
52+
),
53+
);
54+
}
55+
}

example/pubspec.lock

+1-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ packages:
127127
path: ".."
128128
relative: true
129129
source: path
130-
version: "0.1.4"
130+
version: "0.1.5"
131131
typed_data:
132132
dependency: transitive
133133
description:

lib/index_controller.dart

-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@ import 'dart:async';
33
import 'package:flutter/foundation.dart';
44
import 'package:flutter/widgets.dart';
55

6-
abstract class ChangeNotifierMixin {
7-
8-
}
9-
106
class IndexController extends ChangeNotifier {
117
static const int NEXT = 1;
128
static const int PREVIOUS = -1;

lib/transformer_page_view.dart

+12-13
Original file line numberDiff line numberDiff line change
@@ -337,8 +337,7 @@ class TransformerPageView extends StatefulWidget {
337337
}
338338
}
339339

340-
class _TransformerPageViewState extends State<TransformerPageView>
341-
with ChangeNotifierMixin {
340+
class _TransformerPageViewState extends State<TransformerPageView> {
342341
Size _size;
343342
int _activeIndex;
344343
double _currentPixels;
@@ -357,8 +356,6 @@ class _TransformerPageViewState extends State<TransformerPageView>
357356
return child;
358357
}
359358

360-
361-
362359
Widget _buildItem(BuildContext context, int index) {
363360
return new AnimatedBuilder(
364361
animation: _pageController,
@@ -454,8 +451,18 @@ class _TransformerPageViewState extends State<TransformerPageView>
454451
}
455452

456453
void _onGetSize(_) {
454+
Size size;
455+
if (context == null) {
456+
onGetSize(size);
457+
return;
458+
}
457459
RenderObject renderObject = context.findRenderObject();
458-
Size size = renderObject?.paintBounds?.size;
460+
if (renderObject != null) {
461+
Rect bounds = renderObject.paintBounds;
462+
if (bounds != null) {
463+
size = bounds.size;
464+
}
465+
}
459466
_calcCurrentPixels();
460467
onGetSize(size);
461468
}
@@ -540,7 +547,6 @@ class _TransformerPageViewState extends State<TransformerPageView>
540547
super.didChangeDependencies();
541548
}
542549

543-
@override
544550
ChangeNotifier getNotifier() {
545551
return widget.controller;
546552
}
@@ -572,7 +578,6 @@ class _TransformerPageViewState extends State<TransformerPageView>
572578
return currentIndex;
573579
}
574580

575-
@override
576581
void onChangeNotifier() {
577582
int event = widget.controller.event;
578583
int index;
@@ -604,18 +609,12 @@ class _TransformerPageViewState extends State<TransformerPageView>
604609
}
605610
}
606611

607-
608612
ChangeNotifier _controller;
609613

610-
611-
612614
void dispose() {
613615
super.dispose();
614616
if (_controller != null) {
615617
_controller.removeListener(onChangeNotifier);
616618
}
617619
}
618-
619-
620-
621620
}

pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: transformer_page_view
22
description: PageTransformer for flutter
3-
version: 0.1.4
3+
version: 0.1.5
44
author: JZoom <[email protected]>
55
homepage: https://github.com/jzoom/transformer_page_view
66

test/transformer_page_view_test.dart

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import 'package:flutter/material.dart';
2-
import 'package:flutter_driver/flutter_driver.dart' as driver;
32
import 'package:flutter_test/flutter_test.dart';
43

54
import 'package:transformer_page_view/transformer_page_view.dart';

transformer_page_view.iml

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<excludeFolder url="file://$MODULE_DIR$/example/.dart_tool" />
1313
<excludeFolder url="file://$MODULE_DIR$/example/.pub" />
1414
<excludeFolder url="file://$MODULE_DIR$/example/build" />
15+
<excludeFolder url="file://$MODULE_DIR$/example/ios/Flutter/flutter_assets/packages" />
1516
</content>
1617
<orderEntry type="jdk" jdkName="Android API 25 Platform" jdkType="Android SDK" />
1718
<orderEntry type="sourceFolder" forTests="false" />

0 commit comments

Comments
 (0)