SHARE
TWEET

store data in parent page - flutter

a guest Dec 8th, 2019 102 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. signUp.dart
  2. ==================
  3. import 'package:flutter/material.dart';
  4. import 'package:provider/provider.dart';
  5. import 'package:flutter/services.dart';
  6. import 'package:hebo_mobile/screens/signUp/firstScreen.dart';
  7. import 'package:hebo_mobile/screens/signUp/secondScreen.dart';
  8. import 'package:hebo_mobile/screens/signUp/thirdScreen.dart';
  9. import 'package:hebo_mobile/screens/signUp/fourthScreen.dart';
  10. import 'package:hebo_mobile/screens/signUp/fifthScreen.dart';
  11. import 'package:hebo_mobile/screens/signUp/sixthScreen.dart';
  12. import 'package:hebo_mobile/screens/signUp/seventhScreen.dart';
  13.  
  14. class SignUp extends StatefulWidget {
  15.   @override
  16.   SignUpState createState() => new SignUpState();
  17. }
  18.  
  19. class SignUpState extends State<SignUp> {
  20.   PageController pageCtr = PageController();
  21.   String firstName;
  22.   String lastName;
  23.   String dateBirth;
  24.   int gender;
  25.   String email;
  26.   String phoneCode;
  27.   String phoneNumber;
  28.  
  29.   @override
  30.   void dispose() {
  31.     // Clean up the controller when the widget is removed from the
  32.     // widget tree.
  33.     // firstNameCtr.dispose();
  34.     // lastNameCtr.dispose();
  35.     // dateBirthCtr.dispose();
  36.     super.dispose();
  37.   }
  38.  
  39.   _firstScreenUpdate(val1, val2) {
  40.     setState(() {
  41.       firstName = val1;
  42.       lastName = val2;
  43.     });
  44.   }
  45.  
  46.   _secondScreenUpdate(val1, val2) {
  47.     setState(() {
  48.       dateBirth = val1;
  49.       gender = val2;
  50.     });
  51.   }
  52.  
  53.   _thirdScreenUpdateGender(val1, val2, val3) {
  54.     setState(() {
  55.       email = val1;
  56.       phoneCode = val2;
  57.       phoneNumber = val3;
  58.     });
  59.   }
  60.  
  61.   @override
  62.   Widget build(BuildContext context) {
  63.     return Scaffold(
  64.       body: SafeArea(
  65.           child: PageView(
  66.         physics: new NeverScrollableScrollPhysics(),
  67.         controller: pageCtr,
  68.         children: <Widget>[
  69.           Container(
  70.             child: SignUpFirst(
  71.               nextPage: () {
  72.                 pageCtr.nextPage(
  73.                     curve: Curves.ease, duration: Duration(milliseconds: 500));
  74.               },
  75.               updateValue: _firstScreenUpdate,
  76.               firstName: firstName,
  77.               lastName: lastName,
  78.             ),
  79.           ),
  80.           Container(
  81.             child: SignUpSecond(
  82.               prevPage: () {
  83.                 pageCtr.previousPage(
  84.                     curve: Curves.ease, duration: Duration(milliseconds: 500));
  85.               },
  86.               nextPage: () {
  87.                 pageCtr.nextPage(
  88.                     curve: Curves.ease, duration: Duration(milliseconds: 500));
  89.               },
  90.               updateValue: _secondScreenUpdate,
  91.               dateBirth: dateBirth,
  92.               gender: gender,
  93.             ),
  94.           ),
  95.           Container(
  96.             child: SignUpThird(
  97.               prevPage: () {
  98.                 pageCtr.previousPage(
  99.                     curve: Curves.ease, duration: Duration(milliseconds: 500));
  100.               },
  101.               nextPage: () {
  102.                 pageCtr.nextPage(
  103.                     curve: Curves.ease, duration: Duration(milliseconds: 500));
  104.               },
  105.               updateValue: _thirdScreenUpdateGender,
  106.               email: email,
  107.               phoneCode: phoneCode,
  108.               phoneNumber: phoneNumber,
  109.             ),
  110.           ),
  111.         ],
  112.       )),
  113.     );
  114.   }
  115. }
  116.  
  117. firstScreen.dart
  118. =============
  119. import 'package:flutter/material.dart';
  120.  
  121. class SignUpFirst extends StatefulWidget {
  122.   final Function nextPage;
  123.   final Function updateValue;
  124.  
  125.   final String firstName;
  126.   final String lastName;
  127.  
  128.   SignUpFirst(
  129.       {@required this.nextPage,
  130.       @required this.updateValue,
  131.       @required this.firstName,
  132.       @required this.lastName});
  133.  
  134.   @override
  135.   SignUpFirstState createState() => new SignUpFirstState();
  136. }
  137.  
  138. class SignUpFirstState extends State<SignUpFirst> {
  139.   @override
  140.   Widget build(BuildContext context) {
  141.     TextEditingController firstNameCtr =
  142.         new TextEditingController(text: widget.firstName);
  143.     TextEditingController lastNameCtr =
  144.         new TextEditingController(text: widget.lastName);
  145.     return Scaffold(
  146.       body: SafeArea(
  147.         child: Container(
  148.           width: double.infinity,
  149.           color: Colors.pink,
  150.           child: Padding(
  151.             padding: const EdgeInsets.only(left: 20, right: 20, top: 20),
  152.             child: Column(
  153.               children: <Widget>[
  154.                 Row(
  155.                   children: <Widget>[
  156.                     FlatButton(
  157.                       onPressed: () {
  158.                         // pageCtr.previousPage(
  159.                         //     curve: Curves.ease,
  160.                         //     duration: Duration(milliseconds: 500));
  161.                       },
  162.                       color: Colors.transparent,
  163.                       child: Column(
  164.                         children: <Widget>[
  165.                           Icon(
  166.                             Icons.keyboard_arrow_left,
  167.                             color: Colors.white,
  168.                             size: 50,
  169.                           )
  170.                         ],
  171.                       ),
  172.                     ),
  173.                   ],
  174.                 ),
  175.                 Text(
  176.                   'Halo, Tak Kenal maka Tak Sayang.',
  177.                   style: TextStyle(
  178.                       color: Colors.white,
  179.                       fontSize: 23,
  180.                       fontWeight: FontWeight.bold),
  181.                 ),
  182.                 TextField(
  183.                   controller: firstNameCtr,
  184.                   decoration: InputDecoration(
  185.                       enabledBorder: UnderlineInputBorder(
  186.                         borderSide: BorderSide(color: Colors.white),
  187.                       ),
  188.                       hintText: 'First Name',
  189.                       hintStyle: TextStyle(
  190.                           color: Colors.white, fontWeight: FontWeight.bold)),
  191.                 ),
  192.                 TextField(
  193.                   controller: lastNameCtr,
  194.                   decoration: InputDecoration(
  195.                       enabledBorder: UnderlineInputBorder(
  196.                         borderSide: BorderSide(color: Colors.white),
  197.                       ),
  198.                       hintText: 'Last Name',
  199.                       hintStyle: TextStyle(
  200.                           color: Colors.white, fontWeight: FontWeight.bold)),
  201.                 ),
  202.                 RaisedButton(
  203.                   onPressed: () {
  204.                     widget.nextPage();
  205.                     widget.updateValue(firstNameCtr.text, lastNameCtr.text);
  206.                   },
  207.                   child: Text('Continue'),
  208.                 ),
  209.               ],
  210.             ),
  211.           ),
  212.         ),
  213.       ),
  214.     );
  215.   }
  216. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top