anadea_stepper 0.0.1 anadea_stepper: ^0.0.1 copied to clipboard
Anadea stepper
import 'package:anadea_stepper/anadea_stepper.dart';
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
static const String _title = 'Anadea Stepper Code Sample';
@override
Widget build(BuildContext context) {
return MaterialApp(
title: _title,
home: Scaffold(
appBar: AppBar(title: const Text(_title)),
body: const Center(
child: MyStatefulWidget(),
),
),
);
}
}
class MyStatefulWidget extends StatefulWidget {
const MyStatefulWidget({super.key});
@override
State<MyStatefulWidget> createState() => _MyStatefulWidgetState();
}
class _MyStatefulWidgetState extends State<MyStatefulWidget> {
int _currentStep = 0;
int stepperSize = 7;
AnadeaStepperType stepperType = AnadeaStepperType.horizontal;
@override
Widget build(BuildContext context) {
return AnadeaStepper(
type: stepperType,
physics: const ClampingScrollPhysics(),
currentStep: _currentStep,
onStepTapped: (step) => tapped(step),
onStepContinue: continued,
onStepCancel: cancel,
steps: <AnadeaStep>[
AnadeaStep(
title: const Text('Step 1'),
content: Column(
children: <Widget>[
TextFormField(
decoration:
const InputDecoration(labelText: 'TextFormField 1'),
),
TextFormField(
decoration:
const InputDecoration(labelText: 'TextFormField 1'),
),
],
),
isActive: _currentStep >= 0,
state: _currentStep >= 0
? AnadeaStepState.complete
: AnadeaStepState.disabled,
),
AnadeaStep(
title: const Text('Step 2'),
content: Column(
children: <Widget>[
TextFormField(
decoration:
const InputDecoration(labelText: 'TextFormField 2'),
),
TextFormField(
decoration:
const InputDecoration(labelText: 'TextFormField 2'),
),
],
),
isActive: _currentStep >= 0,
state: _currentStep >= 1
? AnadeaStepState.complete
: AnadeaStepState.disabled,
),
AnadeaStep(
title: const Text('Step 3'),
content: Column(
children: <Widget>[
TextFormField(
decoration:
const InputDecoration(labelText: 'TextFormField 3'),
),
],
),
isActive: _currentStep >= 0,
state: _currentStep >= 2
? AnadeaStepState.complete
: AnadeaStepState.disabled,
),
AnadeaStep(
title: const Text('Step 4'),
content: Column(
children: <Widget>[
TextFormField(
decoration:
const InputDecoration(labelText: 'TextFormField 4'),
),
],
),
isActive: _currentStep >= 0,
state: _currentStep >= 3
? AnadeaStepState.complete
: AnadeaStepState.disabled,
),
AnadeaStep(
title: const Text('Step 5'),
content: Column(
children: <Widget>[
TextFormField(
decoration:
const InputDecoration(labelText: 'TextFormField 5'),
),
],
),
isActive: _currentStep >= 0,
state: _currentStep >= 4
? AnadeaStepState.complete
: AnadeaStepState.disabled,
),
AnadeaStep(
title: const Text('Step 6'),
content: Column(
children: <Widget>[
TextFormField(
decoration:
const InputDecoration(labelText: 'TextFormField 6'),
),
],
),
isActive: _currentStep >= 0,
state: _currentStep >= 5
? AnadeaStepState.complete
: AnadeaStepState.disabled,
),
AnadeaStep(
title: const Text('Step 7'),
content: Column(
children: <Widget>[
TextFormField(
decoration:
const InputDecoration(labelText: 'TextFormField 7'),
),
],
),
isActive: _currentStep >= 0,
state: _currentStep >= 6
? AnadeaStepState.complete
: AnadeaStepState.disabled,
),
],
);
}
switchStepsType() {
setState(() => stepperType == StepperType.vertical
? stepperType = AnadeaStepperType.horizontal
: stepperType = AnadeaStepperType.vertical);
}
tapped(int step) {
setState(() => _currentStep = step);
}
continued() {
_currentStep < stepperSize - 1 ? setState(() => _currentStep += 1) : null;
}
cancel() {
_currentStep > 0 ? setState(() => _currentStep -= 1) : null;
}
}