【2024年4月】弊社では、基本リモートワークで一緒に成長してくださるメンバーを広く募集させていただいております。 詳細はこちら

【Flutter】テキスト入力フォーム(TextField)の作成方法を学び。入力された値を非表示にするまでの完全ガイド!

【Flutter】テキスト入力フォーム(TextField)の作成方法を学び。入力された値を非表示にするまでの完全ガイド!
いちの

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

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

  • テキスト入力フォーム(TextField)の基本的な作成方法
  • 入力された値を非表示にする方法
  • パスワード入力欄に目玉アイコン付きのログイン画面の作成方法

開発環境

  • Dart 3.0.0
  • Flutter 3.10.0
目次

テキスト入力フォーム(TextField)の作成方法

概要

Flutterでは、テキスト入力フォームはTextFieldウィジェットを使用して簡単に実装できます。ここでは、基本的なTextFieldのサンプルコードを示し、それに関する詳細な説明を加えます。

サンプルコード

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('テキスト入力フォームのデモ'),
        ),
        body: Center(
          child: TextField(
            decoration: InputDecoration(
              labelText: '名前を入力してください',
              border: OutlineInputBorder(),
            ),
          ),
        ),
      ),
    );
  }
}

サンプルコードの説明

  • 1行目: FlutterのマテリアルデザインUIライブラリをインポートします。
  • 3行目: アプリケーションのエントリーポイントを定義します。
  • 5-18行目: MyAppクラスはアプリケーションのルートウィジェットを定義しています。
  • 7-17行目: MaterialAppウィジェットを使用し、アプリケーションの基本構造を構築します。
  • 9-16行目: Scaffoldウィジェットでアプリケーションの基本的なビジュアルレイアウトを設定します。
  • 10行目: AppBarウィジェットを使ってアプリケーションバーを表示し、タイトルを設定します。
  • 14-16行目: TextFieldウィジェットを使用してテキスト入力フォームを作成します。labelTextでプレースホルダーテキストを設定し、borderで外枠を定義しています。

動作確認

いちの

それでは実際の動作を見てみましょ〜

【Flutter】テキストフォーム(TextField)の作成方法

ステップ入力画面(イメージはアンケート画面)にご興味のある読者様。以下の記事で分かりやすく丁寧に解説しておりますので、ぜひご一読いただけますと幸いです。

入力された値を非表示にする

概要

パスワードなどの機密情報を扱うテキスト入力では、入力された値を非表示にする必要があります。これを実現するためには、TextFieldウィジェットのobscureTextプロパティをtrueに設定します。

サンプルコード

TextField(
  obscureText: true,
  decoration: InputDecoration(
    labelText: 'パスワードを入力してください',
    border: OutlineInputBorder(),
  ),
)

サンプルコードの説明

  • 2行目: obscureTextプロパティをtrueに設定することで、入力された文字が隠されます。
  • 1-5行目: TextFieldのデコレーションを定義しています。ここでは、ラベルテキストを「パスワードを入力してください」とし、入力欄の外枠を設定しています。

動作確認

いちの

それでは実際の動作を見てみましょ〜

【Flutter】テキストフォーム(TextField)内で入力された値を非表示にする方法

アイコン付きの検索フォームについてもご興味のある読者様。以下の記事で分かりやすく丁寧に解説しておりますので、ぜひご一読いただけますと幸いです。

パスワード入力欄に目玉アイコン付きのログイン画面の作成

概要

次に、ログインIDとパスワードを入力するフォームを作成し、パスワード入力欄には目玉アイコンを追加して、ユーザーが入力されたパスワードの表示・非表示を切り替えられるようにします。

サンプルコード (main.dart)

import 'package:flutter/material.dart';

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  bool _passwordVisible = false;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('ログイン画面'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(20.0),
          child: Column(
            children: <Widget>[
              TextField(
                decoration: InputDecoration(
                  labelText: 'ログインID',
                  border: OutlineInputBorder(),
                ),
              ),
              SizedBox(height: 20),
              TextField(
                obscureText: !_passwordVisible,
                decoration: InputDecoration(
                  labelText: 'パスワード',
                  border: OutlineInputBorder(),
                  suffixIcon: IconButton(
                    icon: Icon(
                      _passwordVisible ? Icons.visibility : Icons.visibility_off,
                    ),
                    onPressed: () {
                      setState(() {
                        _passwordVisible = !_passwordVisible;
                      });
                    },
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

サンプルコードの説明

  • 1行目: Flutterのマテリアルデザインライブラリをインポートします。
  • 3行目: アプリのメイン関数を定義します。
  • 5-31行目: MyAppクラス(StatefulWidget)とそのステートクラス_MyAppStateを定義します。ステートフルウィジェットは、ウィジェットの状態が動的に変化する場合に使用します。
  • 7-9行目: _MyAppStateクラスでパスワードの表示状態を管理するためのブール変数_passwordVisibleを定義し、初期値をfalse(非表示)に設定します。
  • 11-30行目: アプリのUIを構築します。Scaffoldウィジェットを使用して基本レイアウトを定義し、AppBarでアプリバーを設定します。
  • 20-29行目: ログインIDとパスワードの入力欄をTextFieldウィジェットで作成します。パスワード入力欄では、obscureTextプロパティに!_passwordVisibleを設定しています。これにより、_passwordVisibletrueの場合はテキストを表示し、falseの場合は非表示にします。
  • 25-28行目: パスワード入力欄の右端に目玉アイコンを配置し、これをタップすることで_passwordVisibleの状態を切り替えることができます。

動作確認

いちの

それでは実際の動作を見てみましょ〜

【Flutter】パスワード入力欄に目玉アイコン付きのログイン画面の作成

SizedBoxなど余白の設定についてご興味がある方は以下の記事が分かりやすくオススメです

まとめ

いかがでしたでしょうか?テキスト入力フォーム(TextField)の基本的な作成方法と入力された値を非表示にする方法にフォーカスをあてて解説していきました。入力フォームの作成はどのアプリでも実装されてるかと思いますので、とても重要なものです。読者様の開発の手助けに少しでもなればいいなと思いこの記事を書かせていただきました。弊社ではAndroid、iOS、Flutterを使ったアプリ開発についてのブログを多数投稿させていただいておりますので、ご興味のある方はぜひ!

いちの

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

画面に表示される文字列の配置についても知りたいという方は、以下個人的に自信作の記事をぜひ!

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

この記事を書いた人

コメント

目次