スクロールするリスト
CoddyのFlutterジャーニー「リストと画面」セクションの一部。レッスン 1/33。
Columnは中にあるすべての要素と同じ高さになります。その高さが画面より大きい場合、下部が切り取られ、はみ出した部分にFlutterが黄色と黒の縞模様を描画します。
ListViewはColumnと同じchildren:を受け取りますが、スクロールできます。スマートフォンで上にドラッグすると、リストの残りが表示されます。
ListView(
children: [
Text('One'),
Text('Two'),
Text('Three'),
],
)ListViewは与えられた領域を埋め、常に上端から始まるため、mainAxisSizeもmainAxisAlignmentもありません。
チャレンジ
簡単アプリは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)),
),
],
),
),
);
}
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
リストと画面のすべてのレッスン
自分で練習してみよう: Flutterオンラインコンパイラ