import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_form_builder/flutter_form_builder.dart'; import 'package:im_stepper/stepper.dart'; import 'package:unit2/screens/passo/Land/add_land/land_appraisal.dart'; import 'package:unit2/screens/passo/Land/add_land/location_and_boundaries.dart'; import 'package:unit2/screens/passo/Land/add_land/other_improvements.dart'; import 'package:unit2/screens/passo/Land/add_land/property_assessment.dart'; import 'package:unit2/screens/passo/Land/add_land/property_assessment_cont.dart'; import 'package:unit2/screens/passo/Land/add_land/property_owner_info.dart'; import 'package:unit2/screens/passo/Land/add_land/value_adjustments.dart'; import 'package:unit2/theme-data.dart/colors.dart'; import 'package:unit2/widgets/passo/custom_formBuilder_fields.dart'; GlobalKey landKey = GlobalKey(); class AddLand extends StatefulWidget { @override _AddLand createState() => _AddLand(); } class _AddLand extends State { // THE FOLLOWING TWO VARIABLES ARE REQUIRED TO CONTROL THE STEPPER. int activeStep = 0; // Initial step set to 5. int upperBound = 6; // upperBound MUST BE total number of icons minus 1. void PrevBtn() { setState(() { activeStep--; }); } void NextBtn() { setState(() { activeStep++; }); } void onSAveAll() { return Navigator.of(context).pop(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( centerTitle: true, backgroundColor: primary, title: Text('Land FAAS'), ), body: Padding( padding: const EdgeInsets.all(8.0), child: Column( children: [ NumberStepper( numbers: [1, 2, 3, 4, 5, 6, 7], activeStepColor: primary, numberStyle: TextStyle(color: Colors.white), lineColor: primary, // activeStep property set to activeStep variable defined above. activeStep: activeStep, activeStepBorderColor: Colors.white, activeStepBorderWidth: 1, // This ensures step-tapping updates the activeStep. onStepReached: (index) { setState(() { activeStep = index; }); }, ), Expanded( child: FormBuilder( key: landKey, // enabled: false, onChanged: () { landKey.currentState?.save(); print(landKey.currentState?.value.toString()); }, autovalidateMode: AutovalidateMode.disabled, skipDisabled: true, child: Container( child: content(PrevBtn, NextBtn, onSAveAll), ), ), ), ], ), ), ); } /// Returns the next button. // Returns the content widget based on the activeStep. Widget content(PrevBtn, NextBtn, onSAveAll) { switch (activeStep) { case 0: return LandPropertyOwnerInfo(NextBtn); case 1: return LandLocationAndBoundaries(PrevBtn, NextBtn); case 2: return LandAppraisal(PrevBtn, NextBtn); case 3: return OtherImprovementPage(PrevBtn, NextBtn); case 4: return ValueAdjustmentPage(PrevBtn, NextBtn); case 5: return LandPropertyAssessmentPage(PrevBtn, NextBtn); case 6: return LandSignatories(onSAveAll); default: return LandPropertyOwnerInfo(NextBtn); } } }