kf_drawer는 여러 플랫폼에서 애플리케이션용 사용자 정의 가능한 사이드 메뉴(Drawer)를 제공하는 Flutter 패키지입니다. 너비, 애니메이션, 항목 스타일링과 같은 다양한 커스터마이징 옵션을 지원하는 깔끔하고 가벼운 네비게이션 구현을 제공합니다. 사용이 간편하도록 설계되어 Android, iOS, Web, macOS, Windows, Linux의 Flutter 앱에 원활하게 통합됩니다. 일관되고 반응성이 뛰어난 네비게이션 드로어 경험을 필요로 하는 앱에 적합합니다.
사용 사례
모바일 앱 탐색
웹 대시보드 사이드바
데스크톱 애플리케이션 메뉴
크로스 플랫폼 탐색
사용자 지정 가능한 서랍 레이아웃
주요 기능
크로스 플랫폼 호환성
사용자 정의 가능한 서랍 너비
부드러운 애니메이션
간편한 통합
사용자 정의 위젯 지원
적합한 대상
다중 플랫폼 앱을 개발하는 개발자
일관된 탐색이 필요한 팀
복잡한 사이드바 요구사항을 가진 앱
사용자 인터페이스 중심 프로젝트
빠른 프로토타이핑
고려 사항
제한된 내장 테마
고급 디자인을 위해서는 수동 스타일링이 필요합니다
내장된 다크 모드 지원 없음
Flutter의 Drawer API에 의존합니다
추가 상태 관리가 필요할 수 있습니다
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
KFDrawer
A dependency-free animated side drawer for Flutter. KFDrawer supports controller
and context-based control, gestures, pinned or centered menus, page history,
right-side drawers, and RTL layouts on every Flutter platform.
Install
dependencies:kf_drawer:^2.1.0
KFDrawer 2.1 supports Dart 3 and Flutter 3.10 or newer. The package is tested
against both its compatibility floor and the current Flutter stable release.
Quick start
Create a controller, give each page item a widget, and place KFDrawer in your
Scaffold body:
footerPinned keeps the footer outside the scrolling item list.
centerScrollableItems centers a shrink-wrapped item list between a fixed
header and footer.
scrollable: false retains the non-scrolling centered column layout.
Right-side and RTL drawers
KFDrawerDirection is logical, so start automatically follows the ambient
text direction:
// Left in LTR, right in RTL (default).KFDrawer(direction: KFDrawerDirection.start)
// Right in LTR, left in RTL.KFDrawer(direction: KFDrawerDirection.end)
Translation, edge dragging, content tap regions, shadow offset, icon padding,
and menu alignment all follow the resolved side.
Dynamic items
Controller changes rebuild the drawer automatically:
drawerController.items = <KFDrawerItem>[...newItems];
drawerController.addItem(newItem);
drawerController.removeItem(oldItem);
drawerController.clearItems();
// If you mutate drawerController.items directly:
drawerController.items.add(newItem);
drawerController.refreshItems();
drawerController.selectItem('settings');
Optional page history and Back handling
KFDrawer swaps page widgets; it does not push Navigator routes. Enable the
lightweight controller history only if this is the behavior your app needs:
Use replacePage to change the current page without adding a history entry and
clearHistory after a navigation reset.
Page item callbacks
When an item has both page and onPressed, KFDrawer now performs both actions:
it selects the page, optionally closes the drawer, and invokes the callback.