0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Flutterでボタン幅を画面いっぱいにする方法

Last updated at Posted at 2025-02-22

Flutterでボタン幅を画面いっぱいにする方法

はじめに

FlutterでUIを調整する際、ボタンの幅を画面いっぱいにしたいことがあります。しかし、単にwidth: double.infinityを指定するだけでは、親ウィジェットの影響で意図した通りにならないことも。

この記事では、「なぜボタンの幅が意図した通りにならないのか?」 という疑問を解決しながら、3つの具体的な方法を解説していきます。


ボタン幅を画面いっぱいにする方法

Flutterでボタンを最大幅にする方法はいくつかあります。それぞれの特徴と使いどころを見ていきましょう。

方法1: SizedBox を使う(単独のボタン向け)

最も簡単な方法は SizedBox を使うことです。

SizedBox(
  width: double.infinity,
  child: ElevatedButton(
    onPressed: () {},
    child: Text("ファイルを選択"),
  ),
)

ポイント:

  • SizedBox(width: double.infinity) によって ボタンの幅を強制的に最大化 します。
  • 単体で置くボタン に適した方法です。

🚨 注意点:

  • RowColumn の中にあると、意図したサイズにならないことがあります。

方法2: Expanded を使う(RowColumnの中で使う場合)

RowColumn の中でボタンを最大幅にしたい場合は、Expanded を使用します。

Row(
  children: [
    Expanded(
      child: ElevatedButton(
        onPressed: () {},
        child: Text("ファイルを選択"),
      ),
    ),
  ],
)

ポイント:

  • Expanded を使うことで、親ウィジェット(RowやColumn)の幅いっぱいにボタンを広げる ことができます。
  • RowColumn の中にボタンを配置する場合に適している ので、フォームのボタンなどでよく使われます。

🚨 注意点:

  • Expanded を使う場合、必ず Row または Column の中 に配置する必要があります。

方法3: Flexible を使う(Expanded より自由度が欲しい場合)

FlexibleExpanded と似ていますが、他の要素とのバランスを考慮しながらサイズ調整をしたい場合 に向いています。

Row(
  children: [
    Flexible(
      child: ElevatedButton(
        onPressed: () {},
        child: Text("ファイルを選択"),
      ),
    ),
  ],
)

ポイント:

  • Expanded と異なり、ボタンのサイズを必要に応じて調整できる ので、レイアウトの自由度が高い。
  • 他の要素と バランスをとりながら幅を調整する 場合に便利。

🚨 注意点:

  • Flexible他の要素とのバランスに依存するため、場合によっては意図しないサイズになることがある ので、適用範囲を考慮する必要があります。

まとめ: どの方法を選べばいい?

ボタンを画面いっぱいに広げたい場合、状況に応じて適切な方法を選びましょう。

単独のボタンなら SizedBox(width: double.infinity)
RowColumn の中なら Expanded
柔軟なレイアウト調整をしたいなら Flexible

🚀 おすすめの学習ポイント:

  • RowColumn の違いを理解する。
  • ExpandedFlexible の違いを試しながら学ぶ。

適切なレイアウトを選んで、快適なUIを作っていきましょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?