こんばんは〜
弊社ブログに辿り着いていただきありがとうございます!
株式会社メモリアインクのいちのです
この記事を読んでわかること
- Flutterで画面下部表示モーダルを作成する方法
- モーダルの背景色の変更方法
- モーダルのサイズ変更方法
開発環境
- Dart 3.0.0
- Flutter 3.10.0
画面下部表示モーダルの作成
概要
Flutterでモーダルを画面下部に表示するには、showModalBottomSheet
関数とshowDialog関数を使用します。今回は、showModalBottomSheet
を使用したモーダル作成の方法を解説していきたいと思います。
サンプルコード
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('画面下部表示モーダルのデモ')),
body: Center(
child: ElevatedButton(
onPressed: () => showCustomModalBottomSheet(context),
child: Text('モーダルを表示'),
),
),
);
}
void showCustomModalBottomSheet(BuildContext context) {
showModalBottomSheet(
context: context,
builder: (BuildContext context) {
return Container(
height: 250, // モーダルの高さを設定
child: Center(
child: Text('ここがモーダルの内容です'),
),
);
},
);
}
}
サンプルコードの解説
- 3行目:
MyApp
クラスをアプリの起点としています。 - 5-12行目:
MaterialApp
ウィジェットを使用して、アプリにナビゲーションとテーマを提供しています。 - 19-24行目: モーダルを表示するボタンを配置しています。
- 29行目:
showModalBottomSheet
関数を呼び出し、モーダルを表示しています。 - 31-38行目: モーダルの内容を定義しています。ここでは中央にテキストを表示しています。
動作確認
それでは、動作を確認してみましょ〜
showDialog関数を使用したモーダルダイアログにご興味のある読者様。以下の記事で分かりやすく丁寧に解説しておりますので、ぜひご一読いただけますと幸いです。
モーダルの背景色変更
概要
モーダルの背景色を変更するには、Container
ウィジェットのcolor
プロパティを使用します。以下にサンプルコードを追加します。
サンプルコード
// showModalBottomSheet関数内のbuilderメソッドを変更
builder: (BuildContext context) {
return Container(
height: 250,
color: Colors.lightBlue, // 背景色を変更
child: Center(
child: Text('ここがモーダルの内容です'),
),
);
},
サンプルコードの解説
- 5行目:
Container
のcolor
プロパティを使用して、モーダルの背景色をColors.lightBlue
に変更しています。
表示確認
それでは、表示を確認してみましょ〜
モーダルのサイズ変更
概要
モーダルのサイズを変更するには、Container
ウィジェットのheight
プロパティを調整します。また、全画面をカバーするようにサイズを大きくすることも可能です。
サンプルコード
// showModalBottomSheet関数内のbuilderメソッドを変更
builder: (BuildContext context) {
return Container(
height: MediaQuery.of(context).size.height * 0.9, // 画面の90%の高さに設定
color: Colors.lightBlue,
child: Center(
child: Text('ここがモーダルの内容です'),
),
);
},
サンプルコードの解説
- 4行目:
MediaQuery.of(context).size.height * 0.9
を使用して、モーダルの高さを画面の90%に設定しています。
表示確認
それでは、表示を確認してみましょ〜
モーダルを閉じる方法
概要
モーダルを閉じるには、Navigator.pop(context)
メソッドを使用します。閉じるボタンをモーダルに追加して、このメソッドを呼び出すようにします。
サンプルコード
// showModalBottomSheet関数内のbuilderメソッドを変更
builder: (BuildContext context) {
return Container(
height: MediaQuery.of(context).size.height * 0.9,
color: Colors.lightBlue,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('ここがモーダルの内容です'),
ElevatedButton(
onPressed: () => Navigator.pop(context),
child: Text('閉じる'),
),
],
),
);
},
サンプルコードの解説
- 10-13行目:
ElevatedButton
を使用して、モーダル内に閉じるボタンを追加しています。 - 11行目: ボタンが押された時に
Navigator.pop(context)
を呼び出して、モーダルを閉じています。
表示確認
それでは、表示を確認してみましょ〜
まとめ
いかがでしたでしょうか?今回は、画面下部表示モーダル作成からカスタマイズ(背景色変更、サイズ変更)する方法について、サンプルコードを用いて解説してみました。読者様の開発の手助けに少しでもなればいいなと思いこの記事を書かせていただいております。弊社ではAndroid、iOS、Flutterを使ったアプリ開発についてのブログを多数投稿させていただいておりますので、ご興味のある方はぜひ!
自分の成長を加速させるチャンスがどこかにあるかもしれません。
変化を恐れずに新たな環境に飛び込む勇気のある方は、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
コメント
コメント一覧 (1件)
[…] […]