🔖
【Flutter】ListViewの使い方 サンプルコードあり
【Flutter】ListViewの使い方 サンプルコードあり
Flutterでリスト表示を行う際によく使われるのがListView
ウィジェットです。本記事では、ListView
の基本的な使い方と、シンプルなサンプルコードを紹介します。
ListViewとは?
ListView
は、複数のウィジェットを縦または横にスクロール可能なリストとして表示できるFlutterのウィジェットです。大量のデータでも効率的に描画できるため、リスト表示には欠かせません。
サンプルコード
以下は、ListView.builder
を使って100件のアイテムを表示するサンプルコードです。リストの各アイテムをタップすると、スナックバーでアイテム名を表示します。
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
Widget build(BuildContext context) {
return MaterialApp(
title: 'ListView Sample',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
// サンプルデータ
final List<String> _items = List<String>.generate(100, (index) => "Item $index");
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: const Text("ListView Sample"),
),
body: ListView.builder(
itemCount: _items.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(_items[index]),
onTap: () {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Tapped on ${_items[index]}')),
);
},
);
},
),
);
}
}
ポイント解説
-
ListView.builder
ListView.builder
は表示するアイテム数が多い場合に、必要な分だけWidgetを生成してくれるので、パフォーマンスの面で優れています。 -
itemBuilder
各リストアイテムのWidgetを返す関数です。index
でリストのインデックスにアクセスできます。 -
onTap
各アイテムをタップした時の処理。今回はSnackBar
でタップしたアイテム名を表示しています。
まとめ
ListView
はFlutterアプリでリスト表示を行う際の基本ウィジェットです。ListView.builder
を使うことで、効率的に大量データの表示やイベント処理が可能です。
ぜひ、サンプルコードを参考に自分のアプリに取り入れてみてください!
Discussion