プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

私がオススメするプログラミング教材です

私がおすすめするプログラミング教材のまとめ【書籍】

目次1 これからエンジニアになりたい人へ向けた本2 プログラミング言語3 アプリ開発4 サーバー、インフラ、セキュリティなど5 機械学習系6 ゲーム開発7 データベース8 デザイン9 組織作り10 自作シリーズ11 その他12 おまけ これ ...

続きを見る

【Flutter入門】Flutterで処理中にmodalを出す方法

更新日:

記事の内容


この記事では、Flutterで処理中にmodalを出す方法を紹介します。
もう少し具体的に言うと、ログインの処理中にグルグルと回っているやつを出す方法を紹介します。

今回、実装する機能

今回、実装する機能は、画面の中心で回っている円です。
これがあることで、ユーザーに、「現在、何らかの処理をやっていること」を伝えることができます。

実装方法

pubspec.yamlにこれを追加します。

modal_progress_hud: ^0.1.3

name: flash_chat
description: A new Flutter application.
version: 1.0.0+1
environment:
sdk: ">=2.1.0<3.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
animated_text_kit: ^2.0.0
firebase_core: ^0.4.4+3
firebase_auth: ^0.16.0
cloud_firestore: ^0.13.5
modal_progress_hud: ^0.1.3
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
assets:
- images/

インポート

import 'package:modal_progress_hud/modal_progress_hud.dart';

bodyをラップして、オプションを追加します。

body: ModalProgressHUD(
inAsyncCall: showSpinner,

showSpinnerをtrueにすれば、「円」がスピンします。

setState(() {
showSpinner = true;
});

import 'dart:io';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flash_chat/components/rounded_button.dart';
import 'package:flash_chat/constants.dart';
import 'package:flash_chat/screens/chat_screen.dart';
import 'package:flutter/material.dart';
import 'package:modal_progress_hud/modal_progress_hud.dart';
class LoginScreen extends StatefulWidget {
static const String id = 'login_screen';
@override
_LoginScreenState createState() => _LoginScreenState();
}
class _LoginScreenState extends State<LoginScreen> {
final _auth = FirebaseAuth.instance;
bool showSpinner = false;
String email;
String password;
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: ModalProgressHUD(
inAsyncCall: showSpinner,
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 24.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Hero(
tag: 'logo',
child: Container(
height: 200.0,
child: Image.asset('images/logo.png'),
),
),
SizedBox(
height: 48.0,
),
TextField(
keyboardType: TextInputType.emailAddress,
textAlign: TextAlign.center,
onChanged: (value) {
email = value;
//Do something with the user input.
},
decoration:
kTextFieldDecoration.copyWith(hintText: 'Enter your email'),
),
SizedBox(
height: 8.0,
),
TextField(
textAlign: TextAlign.center,
obscureText: true,
onChanged: (value) {
password = value;
//Do something with the user input.
},
decoration: kTextFieldDecoration.copyWith(
hintText: 'Enter your password'),
),
SizedBox(
height: 24.0,
),
RoundedButton(
color: Colors.lightBlueAccent,
title: 'Log In',
onPressed: () async {
setState(() {
showSpinner = true;
});
try {
final user = await _auth.signInWithEmailAndPassword(
email: email, password: password);
if (user != null) {
Duration threeSeconds = Duration(seconds: 3);
sleep(threeSeconds);
Navigator.pushNamed(context, ChatScreen.id);
}
setState(() {
showSpinner = false;
});
} catch (e) {
print(e);
}
},
),
],
),
),
),
);
}
}

DartとFlutterをより詳しく勉強したい人には、この記事がオススメです

Dart
FlutterとDartの学習でおすすめの本と動画【2024年最新】

目次1 動画教材2 初心者向け3 中級者向け 動画教材 Flutter & Dart - The Complete Guide [2023 Edition] ▼ 興味がある方は、画像をクリック 英語版ですが、人気のコースです。 Fl ...

続きを見る


SwiftでiOSアプリを開発したい人には、この記事がオススメです

Swiftの学習でおすすめの本と動画【2024年最新】

目次1 動画教材2 初心者向け3 中級者向け 動画教材 【iOS】SwiftUI 超入門 - Swift を基礎から学んで iOS (iPhone) アプリを開発しよう ▼ 興味がある方は、画像をクリック Swift , SwiftUI , ...

続きを見る


KotlinでAndroidアプリを開発したい人には、この記事がオススメです

Kotlinの勉強でおすすめの本と動画【2024年最新】

目次1 動画教材2 初心者向け3 中級者向け 動画教材 はじめての Kotlin【Java 知らなくてOK!丁寧な解説で Android に必要な Kotlin の基本を学習】 ▼ 興味がある方は、画像をクリック 今学ぶべき言語、Kotli ...

続きを見る


Gitをより詳しく勉強したい人には、この記事がオススメです

Gitの学習でおすすめの本と動画【2024年最新】

目次1 動画教材2 漫画?でわかりやすく学ぶ入門書の定番3 初心者向け4 中級者向け5 上級者向け 動画教材 もう怖くないGit!チーム開発で必要なGitを完全マスター ▼ 興味がある方は、画像をクリック Gitの基本コマンド、ブランチやマ ...

続きを見る


ゼロからWebエンジニアになりたい人には、この記事がオススメです

ゼロからWebエンジニアとして就職する方法【何もない自分に積み上げていく】

ちまたには、「エンジニアになるための情報」で溢れかえっています。 ジョージさんが考える「Webエンジニアになる方法」を教えて下さい。 目次1 私が定義するWebエンジニア2 必ずやるべきこと3 推奨されること4 まとめ 私が定義するWebエ ...

続きを見る


独学で実務っぽい経験を積みたい人には、この記事がオススメです

エンジニアが独学で実務経験っぽいことを学ぶ方法

エンジニアとして就職するためには実務経験が大事だと聞いていますが、就職しないことには実務経験を積むことができません。 どうやって、最初の実務経験を積んだらいいでしょうか? 目次1 スクールの理想と現実2 IT業界が抱える矛盾点3 擬似的に実 ...

続きを見る

-Flutter, プログラミング

S