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

【Flutter】画面下部表示モーダル作成からカスタマイズ(背景色変更、サイズ変更)までの完全ガイド!

【Flutter】画面下部表示モーダル作成からカスタマイズ(背景色変更、サイズ変更)までの完全ガイド!
いちの

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

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

  • 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行目: モーダルの内容を定義しています。ここでは中央にテキストを表示しています。

動作確認

いちの

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

【Flutter】画面下部表示モーダル作成

showDialog関数を使用したモーダルダイアログにご興味のある読者様。以下の記事で分かりやすく丁寧に解説しておりますので、ぜひご一読いただけますと幸いです。

モーダルの背景色変更

概要

モーダルの背景色を変更するには、Containerウィジェットのcolorプロパティを使用します。以下にサンプルコードを追加します。

サンプルコード

// showModalBottomSheet関数内のbuilderメソッドを変更
builder: (BuildContext context) {
  return Container(
    height: 250,
    color: Colors.lightBlue, // 背景色を変更
    child: Center(
      child: Text('ここがモーダルの内容です'),
    ),
  );
},

サンプルコードの解説

  • 5行目: Containercolorプロパティを使用して、モーダルの背景色をColors.lightBlueに変更しています。

表示確認

いちの

それでは、表示を確認してみましょ〜

【Flutter】画面下部表示モーダル作成し背景色を変更する

モーダルのサイズ変更

概要

モーダルのサイズを変更するには、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%に設定しています。

表示確認

いちの

それでは、表示を確認してみましょ〜

【Flutter】画面下部表示モーダル作成しサイズを変更する

モーダルを閉じる方法

概要

モーダルを閉じるには、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)を呼び出して、モーダルを閉じています。

表示確認

いちの

それでは、表示を確認してみましょ〜

【Flutter】画面下部表示モーダル作成し閉じるボタン押下にてモーダルを閉じる

まとめ

いかがでしたでしょうか?今回は、画面下部表示モーダル作成からカスタマイズ(背景色変更、サイズ変更)する方法について、サンプルコードを用いて解説してみました。読者様の開発の手助けに少しでもなればいいなと思いこの記事を書かせていただいております。弊社ではAndroid、iOS、Flutterを使ったアプリ開発についてのブログを多数投稿させていただいておりますので、ご興味のある方はぜひ!

いちの

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

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

この記事を書いた人

コメント

コメント一覧 (1件)

コメントする

目次