반응형
질문
저는 Drawer
를 슬라이딩이 아닌 프로그래밍 방식으로 열고 싶습니다. 슬라이딩 기능(드로어의 터치 기능)을 비활성화하는 방법은 무엇인가요?
답변
Null 안전 코드
GlobalKey
를 사용:final GlobalKey<ScaffoldState> _key = GlobalKey(); // 키 생성 @override Widget build(BuildContext context) { return Scaffold( key: _key, // 키를 Scaffold에 할당. drawer: Drawer(), floatingActionButton: FloatingActionButton( onPressed: () => _key.currentState!.openDrawer(), // <-- 드로어 열기 ), ); }
Builder
를 사용:@override Widget build(BuildContext context) { return Scaffold( drawer: Drawer(), floatingActionButton: Builder(builder: (context) { return FloatingActionButton( onPressed: () => Scaffold.of(context).openDrawer(), // <-- 드로어 열기. ); }), ); }
Drawer
를 드래그 제스처로 열 수 없도록 하려면 다음을 설정할 수 있습니다.
Scaffold(
drawerEnableOpenDragGesture: false
// 위의 코드 ...
)
반응형
댓글