Menu
CoddyTech

リストタイルをタップする

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

リストは読むだけのものではありません。行をタップして選択できます。ListTileにはonTap:があり、行をタップしたときに実行される関数です。これはボタンのonPressed:と同じ考え方です。

ListTile(
  title: Text(fruit),
  onTap: () {
    setState(() {
      picked = fruit;
    });
  },
)

onTap:を持つタイルは、触れると波紋も表示されるので、ボタンのように感じられます。

タイルがforで作られている場合、それぞれのタイルのonTapは独自のfruitを記憶しています。Kiwiをタップすると、fruitが'Kiwi'に設定された状態で、Kiwiの関数が実行されます。

challenge icon

チャレンジ

簡単

アプリバーには 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),
            ),
        ],
      ),
    );
  }
}
quiz icon腕試し

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

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

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