stepper.0.dart 1.69 KB
Newer Older
1 2 3 4 5 6
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter/material.dart';

7
/// Flutter code sample for [Stepper].
8

9
void main() => runApp(const StepperExampleApp());
10

11 12
class StepperExampleApp extends StatelessWidget {
  const StepperExampleApp({super.key});
13 14 15 16 17

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
18
        appBar: AppBar(title: const Text('Stepper Sample')),
19
        body: const Center(
20
          child: StepperExample(),
21 22 23 24 25 26
        ),
      ),
    );
  }
}

27 28
class StepperExample extends StatefulWidget {
  const StepperExample({super.key});
29 30

  @override
31
  State<StepperExample> createState() => _StepperExampleState();
32 33
}

34
class _StepperExampleState extends State<StepperExample> {
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
  int _index = 0;

  @override
  Widget build(BuildContext context) {
    return Stepper(
      currentStep: _index,
      onStepCancel: () {
        if (_index > 0) {
          setState(() {
            _index -= 1;
          });
        }
      },
      onStepContinue: () {
        if (_index <= 0) {
          setState(() {
            _index += 1;
          });
        }
      },
      onStepTapped: (int index) {
        setState(() {
          _index = index;
        });
      },
      steps: <Step>[
        Step(
          title: const Text('Step 1 title'),
          content: Container(
64 65 66
            alignment: Alignment.centerLeft,
            child: const Text('Content for Step 1'),
          ),
67 68 69 70 71 72 73 74 75
        ),
        const Step(
          title: Text('Step 2 title'),
          content: Text('Content for Step 2'),
        ),
      ],
    );
  }
}