[flutter] 플러터 Drawer에서 아이템을 클릭했을 때 어떤 동작이 일어나는가?

먼저, Drawer 위젯을 구성하는 아이템은 ListTile 위젯을 사용하여 만들 수 있습니다. ListTile은 드로어 메뉴에 표시할 항목을 나타내는데 사용되며, 클릭 이벤트를 처리할 수 있는 기능을 제공합니다.

아래의 예제 코드에서는 Drawer에 3개의 ListTile을 추가하고, 각각의 아이템을 클릭했을 때 발생하는 동작을 구현합니다.

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Drawer Example'),
        ),
        drawer: Drawer(
          child: ListView(
            padding: EdgeInsets.zero,
            children: <Widget>[
              ListTile(
                title: Text('Item 1'),
                onTap: () {
                  // Item 1 클릭 시 동작
                  print('Item 1 clicked');
                },
              ),
              ListTile(
                title: Text('Item 2'),
                onTap: () {
                  // Item 2 클릭 시 동작
                  print('Item 2 clicked');
                },
              ),
              ListTile(
                title: Text('Item 3'),
                onTap: () {
                  // Item 3 클릭 시 동작
                  print('Item 3 clicked');
                },
              ),
            ],
          ),
        ),
        body: Center(
          child: Text('Click the menu icon to open the drawer'),
        ),
      ),
    );
  }
}

이 코드에서는 ListTile 위젯에 onTap 콜백을 설정하여 각각의 아이템을 클릭했을 때 원하는 동작을 수행할 수 있습니다. 위의 예제에서는 각 아이템 클릭 시 동작으로 ‘print’ 함수를 사용하여 터미널에 해당 아이템의 클릭 정보를 출력하도록 구현되어 있습니다.

위의 코드를 실행하고 드로어 메뉴를 열어 각 아이템을 클릭하면, 해당 아이템에 설정된 동작이 발생하여 터미널에 출력됩니다.

플러터의 Drawer를 활용하면 사용자가 쉽게 사이드 메뉴를 조작할 수 있고, 클릭 이벤트를 통해 원하는 동작을 수행할 수 있습니다. 더 복잡한 동작이나 화면 전환 등을 구현하고 싶다면 onTap 콜백에서 필요한 로직을 추가해주면 됩니다.

참고자료: