Flutter Stepper Example - CREATE A SIMPLE STEPPER WITH FLUTTER
Published February 14, 2020This post explains how CREATE A SIMPLE STEPPER WITH FLUTTER
To Create Stepper we are going to use Stepper Widget
const Stepper({ |
This widget has above properties where
- steps:Will contains the steps what we are going to show in each step.
- type:Type of Stepper (StepperType.vertical,StepperType.horizontal)
- currentStep: Will tell the current step
- onStepTapped: Function will trigger on tap on the Stepper
- onStepContinue: Function will trigger on tap on Continue button
- onStepCancel: Function will trigger on tap on Cancel button
Let's check the example
Create Flutter Application in Android Studio and add below code
class MyStepper extends StatefulWidget{
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return _MyHomePageState();
}
}
class _MyHomePageState extends State<MyStepper> {
int currStep = 0;
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primaryColor: Colors.pink
),
home: Scaffold(
appBar: AppBar(
title: Text("Stepper"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
getStepperCart(),
new RaisedButton(
child: new Text(
'Check Order Status',
style: new TextStyle(color: Colors.white),
),
onPressed: () {},
color: Colors.pink,
),
],
),
),
),
);
}
getStepper()
{
return new Stepper(
type: StepperType.vertical,
currentStep: this.currStep,
onStepContinue: () {
setState(() {
if (currStep < 2 - 1) {
currStep = currStep + 1;
} else {
currStep = 0;
}
});
},
onStepCancel: () {
setState(() {
if (currStep > 0) {
currStep = currStep - 1;
} else {
currStep = 0;
}
});
},
onStepTapped: (step) {
setState(() {
currStep = step;
});
},
steps: [
Step(
title: const Text('Receipt number:'),
isActive: true,
state: StepState.editing,
content: new TextFormField(
keyboardType: TextInputType.text,
autocorrect: true,
decoration: new InputDecoration(
labelText: 'Please enter a receipt number',
hintText: 'Example: WST-10102P',
icon: const Icon(Icons.receipt),
labelStyle: new TextStyle(
decorationStyle: TextDecorationStyle.solid),
),
),
),
Step(
title: const Text('Amount:'),
isActive: true,
state: StepState.editing,
content: new TextFormField(
keyboardType: TextInputType.text,
autocorrect: true,
decoration: new InputDecoration(
labelText: 'Please enter an amount',
hintText: 'Example: 102.22',
icon: const Icon(Icons.monetization_on),
labelStyle: new TextStyle(
decorationStyle: TextDecorationStyle.solid),
),
),
),
],
);
}
getStepperCart()
{
return new Stepper(
type: StepperType.vertical,
currentStep: this.currStep,
onStepContinue: () {
setState(() {
if (currStep < 2 - 1) {
currStep = currStep + 1;
} else {
currStep = 0;
}
});
},
onStepCancel: () {
setState(() {
if (currStep > 0) {
currStep = currStep - 1;
} else {
currStep = 0;
}
});
},
onStepTapped: (step) {
setState(() {
currStep = step;
});
},
steps: [
Step(
title: const Text('Place Order'),
isActive: true,
state: StepState.editing,
content: Row(
children: <Widget>[
Icon(Icons.add_shopping_cart,color: Colors.green,size: 32,),
SizedBox(width: 20,),
Text("20 Items",style: TextStyle(color: Colors.green,fontSize: 20),)
],
),
),
Step(
title: const Text('Pay'),
isActive: true,
state: StepState.editing,
content: Row(
children: <Widget>[
Icon(Icons.payment,color: Colors.green,size: 32,),
SizedBox(width: 20,),
Text("\$ 99",style: TextStyle(color: Colors.green,fontSize: 20),)
],
),
),
],
);
}
}
|
Article Contributed By :
|
|
|
|
4381 Views |