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でWidget間の隙間を空けるのにSizedBoxを使う違和感

Last updated at Posted at 2024-06-29

結論

隙間を空ける用途でSizedBoxを使うのは問題ない

背景

普段Web開発を普段している私は、Flutterで隙間を空けるためにSizedBoxが用いられていることに違和感があった。
例えばcontent1とcontent2の間にスペースを空けたいときはHTMLではこのような記載になる。(説明の簡易化のためにTailwindCSSを利用)
<div class="mb-2"> Hello, World! </div>
<div> Welcome to Flutter </div>

それをDartで再現しようとすると、以下のようになる。

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text('Hello, World!'),
              SizedBox(height: 8), // ☆ここ
              Text('Welcome to Flutter'),
            ],
          ),
        ),
      ),
    );
  }
}

このSizedBoxはあたかも<div class="my-1">という空divを置いているようで、とても違和感があった。

<div> Hello, World! </div>
<div class="my-1">
<div> Welcome to Flutter </div>

しかし複数の学習ではこのようなSizedBoxの使い方が紹介されていたため、公式ソースを追ってみることにした。

公式の説明

以下の動画に「Great for adding gaps between widgets」と説明あり。
ウィジェット間のスペース空ける用途で用いられていた。

最後に

隙間を空ける用途でSizedBoxを使うのは問題ない。今後はSpacerやContainer、Paddingなど用途に併せてSizeBoxもうまく活用していきたい。
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?