[flutter] 플러터 Drawer에서 사용자가 스와이프 동작을 통해 메뉴를 열고 닫는 방법은?
사용자가 스와이프 동작을 통해 Drawer를 열고 닫을 수 있도록 하려면 Scaffold 위젯에서 drawer 속성을 사용하여 Drawer를 구현한 뒤, Scaffold의 body 속성에는 상태를 관리하기 위한 GlobalKey를 사용해주세요. 이렇게 하면 사용자가 스와이프 동작을 통해 Drawer를 열고 닫을 수 있습니다.
다음은 해당 기능을 구현하는 예제 코드입니다:
import 'package:flutter/material.dart';
class MyHomePage extends StatelessWidget {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
@override
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey,
appBar: AppBar(
title: Text('Flutter Drawer'),
),
drawer: Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: <Widget>[
ListTile(
title: Text('메뉴 1'),
onTap: () {
// 메뉴 1 선택 시 동작
},
),
ListTile(
title: Text('메뉴 2'),
onTap: () {
// 메뉴 2 선택 시 동작
},
),
],
),
),
body: Container(
child: Center(
child: Text('메인 화면'),
),
),
);
}
}
위의 코드에서는 GlobalKey<ScaffoldState>
를 사용하여 Scaffold의 상태를 관리하고, drawer 속성을 사용하여 Drawer를 구현했습니다. ListTile 위젯을 사용하여 메뉴를 추가하고, 각 메뉴의 onTap 콜백 함수를 정의하여 선택 시 동작을 정의할 수 있습니다.
이제 사용자는 스와이프 동작을 통해 Drawer를 열고 닫을 수 있게 됩니다. 앱의 홈 화면에서 스와이프 동작을 시도해보면 Drawer가 나타나고 사라지는 것을 확인할 수 있을 것입니다.
더 많은 정보가 필요하다면 플러터의 공식 문서(https://flutter.dev/)를 참조해주세요.