リストタイルをタップする
CoddyのFlutterジャーニー「リストと画面」セクションの一部。レッスン 4/33。
リストは読むだけのものではありません。行をタップして選択できます。ListTileにはonTap:があり、行をタップしたときに実行される関数です。これはボタンのonPressed:と同じ考え方です。
ListTile(
title: Text(fruit),
onTap: () {
setState(() {
picked = fruit;
});
},
)onTap:を持つタイルは、触れると波紋も表示されるので、ボタンのように感じられます。
タイルがforで作られている場合、それぞれのタイルのonTapは独自のfruitを記憶しています。Kiwiをタップすると、fruitが'Kiwi'に設定された状態で、Kiwiの関数が実行されます。
チャレンジ
簡単アプリバーには Pick a fruit と表示されています。各タイルに onTap: を設定し、果物をタップするとアプリバーが You picked Mango(タップした果物に応じて変わります)に変わるようにしてください。
自分で試してみよう
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
debugShowCheckedModeBanner: false,
home: FruitPicker(),
);
}
}
class FruitPicker extends StatefulWidget {
const FruitPicker({super.key});
@override
State<FruitPicker> createState() => _FruitPickerState();
}
class _FruitPickerState extends State<FruitPicker> {
final List<String> fruits = ['Apple', 'Banana', 'Kiwi', 'Mango', 'Peach'];
String picked = 'Pick a fruit';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(picked)),
body: ListView(
children: [
for (String fruit in fruits)
ListTile(
title: Text(fruit),
),
],
),
);
}
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
リストと画面のすべてのレッスン
自分で練習してみよう: Flutterオンラインコンパイラ