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

【Flutter】画像ボタンをInkWellウィジェットを使って簡単に作成!サイズ変更までの完全ガイド!

【Flutter】画像ボタンをInkWellウィジェットを使って簡単に作成!サイズ変更までの完全ガイド!
いちの

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

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

  • FlutterでInkWellウィジェットを使用して画像ボタンを作成する方法
  • 作成したボタンのサイズを変更する方法
  • assetsフォルダの作成と画像パスのpubspec.yamlへの記述方法

開発環境

  • Dart 3.0.0
  • Flutter 3.10.0
目次

assetsフォルダの作成

プロジェクトフォルダ直下にassetsフォルダを作成し、使用する画像をこのフォルダに配置します。

pubspec.yamlで画像パスを記述する

flutter:
  assets:
    - assets/your_image.png

画像ボタンをInkWellウィジェットを使って簡単に作成

概要

FlutterでUIを構築する際には、多様なウィジェットが提供されています。画像ボタンを作成するには、InkWellウィジェットを使います。InkWellウィジェットはタップ操作に反応するウィジェットで、水の波紋の演出となっております。

サンプルコード

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: InkWell(
            onTap: () {
              print('ボタンがタップされました!');
            },
            child: Image.asset('assets/your_image.png'),
          ),
        ),
      ),
    );
  }
}

サンプルコードの説明

  • 1行目で、Flutterのmaterial.dartパッケージをインポートしています。
  • 3行目でmain関数を定義し、アプリケーションのエントリポイントを設定しています。
  • 5-24行目でMyAppクラスを定義しています。これはStatelessWidgetを継承しており、アプリケーションのルートウィジェットとして機能します。
  • 7-23行目でbuildメソッドをオーバーライドし、ウィジェットツリーを構築しています。
  • 8行目でMaterialAppウィジェットを使用し、ナビゲーションやテーマのようなアプリ全体の設定を行います。
  • 9-21行目でScaffoldウィジェットを使用し、アプリバーとボディのUIを構築しています。
  • 14-19行目でInkWellウィジェット内にImage.assetを配置し、画像ボタンを作成しています。
  • 15行目でonTapプロパティを使い、タップ操作に対するコールバック関数を定義しています。

表示確認

いちの

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

【Flutter】画像ボタンをInkWellウィジェットを使って簡単に作成

よくある画像が表示されない時の解決方法

以下のような画面になっている場合は、画像ボタン作成の事前準備が上手くいっていない可能性が高いため、もう一度やり直してみることをオススメいたします。

【Flutter】よくある画像が表示されない時の解決方法

アイコンボタンとテキストボタンにご興味のある読者様。以下の記事で分かりやすく丁寧に解説しておりますので、ぜひご一読いただけますと幸いです。

ボタンのサイズを変更する方法

概要

画像ボタンのサイズを変更するには、Containerウィジェットを使用してInkWellウィジェットをラップします。Containerウィジェットは、サイズ、パディング、マージン、装飾などを制御するために使用されます。

サンプルコード

// 上記のサンプルコードに続き、Containerウィジェットを追加してサイズを調整します。

body: Center(
  child: Container(
    width: 200, // 幅を200に設定
    height: 200, // 高さを200に設定
    child: InkWell(
      onTap: () {
        print('ボタンがタップされました!');
      },
      child: Image.asset('assets/your_image.png'),
    ),
  ),
),

サンプルコードの説明

  • ContainerウィジェットをInkWellウィジェットの外側に配置します。
  • widthheightプロパティを使用して、コンテナの幅と高さを指定します。これにより、内包する画像ボタンのサイズも変更されます。
  • InkWellウィジェットとImage.assetウィジェットの使用方法は前述のサンプルコードと同様です。

表示確認

いちの

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

【Flutter】画像ボタンをInkWellウィジェットを使って簡単に作成しサイズ変更をする

スライド操作ボタンについてもご興味のある読者様。以下の記事で分かりやすく丁寧に解説しておりますので、ぜひご一読いただけますと幸いです。

まとめ

いかがでしたでしょうか?今回は、画像ボタンをInkWellウィジェットを使って簡単に作成し、サイズ変更する方法について解説させていただきました。読者様の開発の手助けに少しでもなればいいなと思いこの記事を書かせていただいております。弊社ではAndroid、iOS、Flutterを使ったアプリ開発についてのブログを多数投稿させていただいておりますので、ご興味のある方はぜひ!

いちの

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

ボタン押下時の処理では、非同期通信を行うという事がよくあります。(例えばAPIを叩いたり)以下の記事では、ボタン押下時の非同期処理について分かりやすく解説してますので、興味のある読者様。ご一読いただけますと幸いです。

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

この記事を書いた人

コメント

目次