anadea_stepper 0.0.1 copy "anadea_stepper: ^0.0.1" to clipboard
anadea_stepper: ^0.0.1 copied to clipboard

Anadea stepper

example/lib/main.dart

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;
  }
}