Guest User

Untitled

a guest
Apr 25th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2. import 'package:meta/meta.dart';
  3.  
  4.  
  5. void main() => runApp(new MyApp());
  6.  
  7. class MyApp extends StatelessWidget {
  8. Widget build(BuildContext context) {
  9. return new MaterialApp(
  10. title: 'Page Test',
  11. home: new Scaffold(
  12. appBar: AppBar(title: Text("Home")),
  13. body: new PageView.builder(
  14. itemBuilder: (BuildContext context, int index) =>
  15. new TestPage(index: index, key: new PageStorageKey<String>('page-$index')),
  16. itemCount: 3,
  17. )),
  18. );
  19. }
  20. }
  21.  
  22. class TestPage extends StatefulWidget {
  23. final int index;
  24.  
  25. TestPage({Key key, @required this.index}) : super(key: key);
  26.  
  27. @override
  28. TestPageState createState() => new TestPageState();
  29. }
  30.  
  31. int _globalCounter = 0;
  32.  
  33. class TestPageState extends State<TestPage> {
  34. int _counter;
  35.  
  36. @override
  37. void didChangeDependencies() {
  38. super.didChangeDependencies();
  39. int value = PageStorage.of(context).readState(context);
  40. if (value == null) {
  41. _counter = _globalCounter++;
  42. PageStorage.of(context).writeState(context, _counter);
  43. } else {
  44. _counter = value;
  45. }
  46. }
  47.  
  48. @override
  49. Widget build(BuildContext context) {
  50. return new Center(child: new Text("Page #${widget.index}\nCounter #$_counter"));
  51. }
  52. }
Add Comment
Please, Sign In to add comment