こんばんは〜
弊社ブログに辿り着いていただきありがとうございます!
株式会社メモリアインクのいちのです
この記事を読んでわかること
- テキスト入力フォーム(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
で外枠を定義しています。
動作確認
それでは実際の動作を見てみましょ〜
ステップ入力画面(イメージはアンケート画面)にご興味のある読者様。以下の記事で分かりやすく丁寧に解説しておりますので、ぜひご一読いただけますと幸いです。
入力された値を非表示にする
概要
パスワードなどの機密情報を扱うテキスト入力では、入力された値を非表示にする必要があります。これを実現するためには、TextField
ウィジェットのobscureText
プロパティをtrue
に設定します。
サンプルコード
TextField(
obscureText: true,
decoration: InputDecoration(
labelText: 'パスワードを入力してください',
border: OutlineInputBorder(),
),
)
サンプルコードの説明
- 2行目:
obscureText
プロパティをtrue
に設定することで、入力された文字が隠されます。 - 1-5行目:
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
を設定しています。これにより、_passwordVisible
がtrue
の場合はテキストを表示し、false
の場合は非表示にします。 - 25-28行目: パスワード入力欄の右端に目玉アイコンを配置し、これをタップすることで
_passwordVisible
の状態を切り替えることができます。
動作確認
それでは実際の動作を見てみましょ〜
SizedBoxなど余白の設定についてご興味がある方は以下の記事が分かりやすくオススメです
まとめ
いかがでしたでしょうか?テキスト入力フォーム(TextField)の基本的な作成方法と入力された値を非表示にする方法にフォーカスをあてて解説していきました。入力フォームの作成はどのアプリでも実装されてるかと思いますので、とても重要なものです。読者様の開発の手助けに少しでもなればいいなと思いこの記事を書かせていただきました。弊社ではAndroid、iOS、Flutterを使ったアプリ開発についてのブログを多数投稿させていただいておりますので、ご興味のある方はぜひ!
自分の成長を加速させるチャンスがどこかにあるかもしれません。
変化を恐れずに新たな環境に飛び込む勇気のある方は、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
画面に表示される文字列の配置についても知りたいという方は、以下個人的に自信作の記事をぜひ!
コメント
コメント一覧 (3件)
[…] […]
[…] […]
[…] […]