Menu
CoddyTech

オーバーフローの解決:折り返し

CoddyのFlutterジャーニー「画面サイズに合わせたレイアウト」セクションの一部。レッスン 8/30。

タグ、フィルター、チップのように、文中の単語のように並ぶ項目を含む行もあります。1行に収まりきらないほど項目が多いと、Row は右側にはみ出します。

Wrap は同じ children: リストを受け取り、次の子が行に収まらない場合は、その下の新しい行から表示します。

Wrap(
  children: [
    for (final tag in tags) Text(tag),
  ],
)

これは、はみ出しを解消する3つ目の方法です。1つの子を縮小する必要がある場合は Expanded を使い、ページが画面より長い場合はスクロールビューを使い、子を次の行に移動させる場合は Wrap を使います。

Wrap は、それぞれの子を要求されたサイズのままにします。子を押し縮めることはなく、下の行に移動させるだけです。

challenge icon

チャレンジ

簡単

タグが右側にはみ出しています。段落内の単語のように、必要なだけ複数行に折り返されるようにしてください。

自分で試してみよう

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    final tags = ['Dart', 'Flutter', 'Mobile', 'Design', 'Games', 'Web'];
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: const Text('Interests')),
        body: Padding(
          padding: const EdgeInsets.all(16),
          child: Row(
            children: [
              for (final tag in tags)
                Container(
                  width: 110,
                  height: 40,
                  decoration: BoxDecoration(
                    color: Colors.purple.shade100,
                    borderRadius: BorderRadius.circular(20),
                  ),
                  child: Center(child: Text(tag)),
                ),
            ],
          ),
        ),
      ),
    );
  }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

画面サイズに合わせたレイアウトのすべてのレッスン

自分で練習してみよう: Flutterオンラインコンパイラ