【Flutter】Columnのはみ出たWidgetをスクロール表示でエラー対処

今回はColumnRowのWidgetがはみ出てエラーが発生した場合にスクロール表示する方法を紹介します。

折り返したい場合はWrapを使用します。

\ 世界最大級のオンライン学習サービス /

目次

Columnをスクロール表示

SingleChildScrollView(
  child: Column(
    children: List.generate(100, (index) {
      return Text(
        'item $index',
        style: TextStyle(fontSize: 20),
      );
    }),
  ),
),

SingleChildScrollViewColumnをラップすればスクロール表示できます。

SingleChildScrollViewあり

SingleChildScrollViewなし

Rowをスクロール表示

SingleChildScrollView(
  scrollDirection: Axis.horizontal,
  child: Row(
    children: List.generate(100, (index) {
      return Padding(
        padding: const EdgeInsets.all(8.0),
        child: Container(
          width: 100,
          height: 100,
          color: Colors.blue,
        ),
      );
    }),
  ),
),

Rowの場合はSingleChildScrollViewでラップした後に、scrollDirectionの引数にAxis.horizontalを渡します。

scrollDirectionのデフォルトはAxis.verticalです。

SingleChildScrollViewあり

SingleChildScrollViewなし

サンプルコード

import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('FlutterZero'),
        ),
        body: MyCustomApp(),
      ),
    );
  }
}

class MyCustomApp extends StatefulWidget {
  const MyCustomApp({Key? key}) : super(key: key);

  @override
  State<MyCustomApp> createState() => _MyCustomAppState();
}

class _MyCustomAppState extends State<MyCustomApp> {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: SingleChildScrollView(
        scrollDirection: Axis.horizontal,
        child: Row(
          children: List.generate(100, (index) {
            return Padding(
              padding: const EdgeInsets.all(8.0),
              child: Container(
                width: 100,
                height: 100,
                color: Colors.blue,
              ),
            );
          }),
        ),
      ),
    );
  }
}

一緒に読みたい

参考

  • URLをコピーしました!
目次