[flutter] 플러터 Drawer를 만드는 방법은?

플러터에서 Drawer는 앱의 네비게이션을 제공하는 중요한 기능입니다. 사용자가 앱 내에서 다른 화면으로 이동하거나 설정을 변경할 수 있도록 도와줍니다. 이제 플러터에서 Drawer를 만드는 방법에 대해 알아보겠습니다.

1. Scaffold 위에 Drawer 추가하기

먼저, Scaffold 위에 Drawer를 추가해야합니다. Drawer 위젯을 Scaffolddrawer 속성에 할당하여 화면에 표시할 수 있습니다. 다음은 기본적인 Drawer 위젯의 구조입니다.

Scaffold(
  drawer: Drawer(
    child: ListView(
      children: [
        // Drawer 내용 추가
      ],
    ),
  ),
  // 나머지 화면 구성 요소
)

2. Drawer 내용 추가하기

Drawer에는 다양한 위젯을 추가하여 사용자에게 보여줄 수 있습니다. 예를 들어, ListTile을 사용하여 각 항목을 표시할 수 있습니다. 각 항목은 사용자가 탭할 때 발생할 이벤트를 정의할 수도 있습니다. 다음은 간단한 Drawer 내용의 예입니다.

Drawer(
  child: ListView(
    children: [
      ListTile(
        title: Text("항목 1"),
        onTap: () {
          // 항목 1을 탭했을 때 수행할 동작
        },
      ),
      ListTile(
        title: Text("항목 2"),
        onTap: () {
          // 항목 2를 탭했을 때 수행할 동작
        },
      ),
      // 추가적인 항목들
    ],
  ),
)

위 예제에서는 ListTile을 사용하여 두 개의 항목을 만들었습니다. 각 항목에는 타이틀이 포함되어 있으며, 탭 이벤트를 처리하기 위해 onTap 속성을 사용했습니다.

3. Drawer 아이콘 추가하기

일반적으로, AppBar에 아이콘을 추가하여 Drawer를 열 수 있도록 합니다. 아이콘을 탭하면 Drawer가 화면에 나타납니다. 다음은 AppBarleading 속성을 통해 아이콘을 추가하는 방법입니다.

Scaffold(
  appBar: AppBar(
    leading: IconButton(
      icon: Icon(Icons.menu),
      onPressed: () {
        // Drawer 열기
      },
    ),
  ),
  drawer: Drawer(
    // Drawer 내용
  ),
  // 나머지 화면 구성 요소
)

위 예제에서는 leading 값으로 IconButton 위젯을 사용했습니다. IconButton는 클릭 가능한 아이콘을 생성하는 위젯입니다. onPressed 속성을 사용하여 아이콘이 클릭되었을 때 Drawer를 열 수 있습니다.

4. 화면과 Drawer 상호 작용

Drawer를 통해 다른 화면으로 이동하거나 설정을 변경하기 위해 이벤트 처리가 필요할 수 있습니다. 위에서 onTap 속성을 사용하여 항목을 탭할 때의 동작을 정의하는 방법을 보여줬습니다. 예를 들어, 다음은 항목을 탭했을 때 다른 화면으로 이동하는 코드의 예입니다.

onTap: () {
  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => 다른화면()),
  );
},

Navigator.push를 사용하여 context를 기반으로 다른 화면으로 이동할 수 있습니다. 위 예제에서는 다른화면으로 이동하도록 설정되어 있습니다.

플러터에서 Drawer를 만드는 방법을 알아보았습니다. 이제 앱에 네비게이션 기능을 추가하고 사용자가 쉽게 앱을 탐색할 수 있는 Drawer를 사용할 수 있습니다. 창작적인 앱 개발을 위해 여러분만의 독특한 Drawer를 디자인해보세요!

참고 자료