Menu
CoddyTech

スクロールするリスト

CoddyのFlutterジャーニー「リストと画面」セクションの一部。レッスン 1/33。

Columnは中にあるすべての要素と同じ高さになります。その高さが画面より大きい場合、下部が切り取られ、はみ出した部分にFlutterが黄色と黒の縞模様を描画します。

ListViewはColumnと同じchildren:を受け取りますが、スクロールできます。スマートフォンで上にドラッグすると、リストの残りが表示されます。

ListView(
  children: [
    Text('One'),
    Text('Two'),
    Text('Three'),
  ],
)

ListViewは与えられた領域を埋め、常に上端から始まるため、mainAxisSizeもmainAxisAlignmentもありません。

challenge icon

チャレンジ

簡単

アプリはColumnに20個の都市を一覧表示していますが、そのほとんどは画面に収まりません。スマートフォン画面の下部にある縞模様を探してください。ColumnをListViewに変更すると、最後の都市であるWellingtonまでスクロールできます。

自分で試してみよう

import 'package:flutter/material.dart';

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

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

  @override
  Widget build(BuildContext context) {
    final List<String> cities = [
      'Amsterdam',
      'Bangkok',
      'Cairo',
      'Dublin',
      'Edinburgh',
      'Florence',
      'Geneva',
      'Havana',
      'Istanbul',
      'Jakarta',
      'Kyoto',
      'Lima',
      'Madrid',
      'Nairobi',
      'Oslo',
      'Paris',
      'Quito',
      'Rome',
      'Seoul',
      'Wellington',
    ];
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: const Text('Cities')),
        body: Column(
          children: [
            for (String city in cities)
              Padding(
                padding: const EdgeInsets.all(16),
                child: Text(city, style: const TextStyle(fontSize: 24)),
              ),
          ],
        ),
      ),
    );
  }
}
quiz icon腕試し

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

リストと画面のすべてのレッスン

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