【2024年11月】弊社では副業案件希望の方を募集しております。<例>土日稼働可等。 詳細はこちら

【Flutter】ステップ(Stepper)入力の基本実装から実践的なアンケート画面の作成までの完全ガイド!

【Flutter】ステップ(Stepper)入力の基本実装から実践的なアンケート画面の作成までの完全ガイド!
いちの

こんばんは〜
弊社ブログに辿り着いていただきありがとうございます!
株式会社メモリアインクのいちのです

この記事を読んでわかること

  • ステップ入力(Stepper)の基本的な使い方
  • 実践的なアンケート画面の作成方法

開発環境

  • Dart 3.0.0
  • Flutter 3.10.0
目次

ステップ入力の基本実装

概要

ステップ入力(Stepper)は、ユーザーが順序立てて情報を入力できるようにするウィジェットです。Flutterでは、Stepperウィジェットを使用してこの機能を簡単に実装できます。

サンプルコード

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: StepperDemo(),
    );
  }
}

class StepperDemo extends StatefulWidget {
  @override
  _StepperDemoState createState() => _StepperDemoState();
}

class _StepperDemoState extends State<StepperDemo> {
  int _currentStep = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('ステップ入力デモ'),
      ),
      body: Stepper(
        currentStep: _currentStep,
        onStepContinue: () {
          if (_currentStep < 2) {
            setState(() {
              _currentStep += 1;
            });
          }
        },
        onStepCancel: () {
          if (_currentStep > 0) {
            setState(() {
              _currentStep -= 1;
            });
          }
        },
        steps: [
          Step(
            title: Text('ステップ 1'),
            content: Text('ここにステップ 1 の内容が入ります。'),
          ),
          Step(
            title: Text('ステップ 2'),
            content: Text('ここにステップ 2 の内容が入ります。'),
          ),
          Step(
            title: Text('ステップ 3'),
            content: Text('ここにステップ 3 の内容が入ります。'),
          ),
        ],
      ),
    );
  }
}

サンプルコードの解説

  • 5行目: MyAppクラスがアプリケーションのルートウィジェットです。
  • 14行目: StepperDemoはステップ入力を実装するためのStatefulWidgetです。
  • 20行目: _currentStep変数は現在のステップを追跡します。
  • 28行目: Stepperウィジェットを使用して、ステップ入力を表示します。
  • 29行目: currentStepプロパティに_currentStepを設定して、現在のステップを指定します。
  • 30-43行目: onStepContinueonStepCancelでステップの進行と戻る動作を制御します。
  • 44-57行目: stepsプロパティでステップの内容を定義します。各Stepウィジェットにはタイトルと内容が含まれます。

動作確認

いちの

それでは、動作を確認してみましょ〜

【Flutter】ステップ(Stepper)入力の基本実装

実践的なアンケート画面の作成

概要

次に、実践的なアンケート画面を作成する方法を見ていきましょう。アンケート画面では、ユーザーからのフィードバックを効率的に収集するために、複数の質問をステップ形式で提示します。

サンプルコード

import 'package:flutter/material.dart';

void main() => runApp(SurveyApp());

class SurveyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SurveyStepper(),
    );
  }
}

class SurveyStepper extends StatefulWidget {
  @override
  _SurveyStepperState createState() => _SurveyStepperState();
}

class _SurveyStepperState extends State<SurveyStepper> {
  int _currentStep = 0;
  List<String> _answers = ['', '', ''];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('アンケート'),
      ),
      body: Stepper(
        currentStep: _currentStep,
        onStepContinue: () {
          if (_currentStep < _answers.length - 1) {
            setState(() {
              _currentStep += 1;
            });
          }
        },
        onStepCancel: () {
          if (_currentStep > 0) {
            setState(() {
              _currentStep -= 1;
            });
          }
        },
        steps: [
          Step(
            title: Text('質問 1'),
            content: TextFormField(
              initialValue: _answers[0],
              onChanged: (value) {
                _answers[0] = value;
              },
              decoration: InputDecoration(labelText: 'あなたの趣味は何ですか?'),
            ),
          ),
          Step(
            title: Text('質問 2'),
            content: TextFormField(
              initialValue: _answers[1],
              onChanged: (value) {
                _answers[1] = value;
              },
              decoration: InputDecoration(labelText: '好きな食べ物は何ですか?'),
            ),
          ),
          Step(
            title: Text('質問 3'),
            content: TextFormField(
              initialValue: _answers[2],
              onChanged: (value) {
                _answers[2] = value;
              },
              decoration: InputDecoration(labelText: '旅行で行きたい場所はどこですか?'),
            ),
          ),
        ],
      ),
    );
  }
}

サンプルコードの解説

  • 5行目: SurveyAppクラスがアプリケーションのルートウィジェットです。
  • 14行目: SurveyStepperはアンケート画面を実装するためのStatefulWidgetです。
  • 20行目: _currentStep変数は現在のステップを追跡します。
  • 21行目: _answers配列はユーザーの回答を格納します。
  • 31-44行目: onStepContinueonStepCancelでステップの進行と戻る動作を制御します。
  • 45-76行目: 各ステップにはTextFormFieldを使用して質問を表示し、ユーザーからの入力を受け取ります。入力された回答は_answers配列に保存されます。

動作確認

いちの

それでは、動作を確認してみましょ〜

【Flutter】ステップ(Stepper)入力の基本実装から実践的なアンケート画面の作成

パスワードや電話番号入力の際、入力した値を非表示にすることにご興味のある読者様。以下の記事で分かりやすく丁寧に解説しておりますので、ぜひご一読いただけますと幸いです。

まとめ

いかがでしたでしょうか?今回は、ステップ(Stepper)入力の基本実装から実践的なアンケート画面の作成方法について、サンプルコードを用いて解説してみました。読者様の開発の手助けに少しでもなればいいなと思いこの記事を書かせていただいております。弊社ではAndroid、iOS、Flutterを使ったアプリ開発についてのブログを多数投稿させていただいておりますので、ご興味のある方はぜひ!

いちの

自分の成長を加速させるチャンスがどこかにあるかもしれません。
変化を恐れずに新たな環境に飛び込む勇気のある方は、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
をオススメします。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメント一覧 (1件)

コメントする

目次