- [Flutter] 36. BottomSheet 위젯이란?2024년 11월 12일
- Song hyun
- 작성자
- 2024.11.12.:32
728x90반응형[Flutter] 36. BottomSheet 위젯이란?
1. BottomSheet 위젯이란?
- BottomSheet 위젯이란 화면 아래쪽에서 올라오는 다이얼로그를 의미한다.,
- showBottomSheet() 및 showModalBottomSheet()의 builder 속성에 지정한 위젯을 화면 아래쪽에서 올라오게 보여준다.
2. 시나리오 코드
(1) 기본
import 'package:flutter/material.dart'; void main() { runApp(BottomSheetApp()); } class BottomSheetApp extends StatelessWidget { const BottomSheetApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'myApp', theme: ThemeData( useMaterial3: true, colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue) ), home: Scaffold( appBar: AppBar(title: const Text('Bottom Sheet Sample'),), body: MyBottomSheet(), ), ); } } // 새로운 클래스 class MyBottomSheet extends StatelessWidget { const MyBottomSheet({super.key}); @override Widget build(BuildContext context) { return Center( child: ElevatedButton( child: const Text('show bottom sheet'), onPressed: (){ // 이벤트 핸들러 처리 // showModalBottomSheet(context: context, builder: builder) showModalBottomSheet(context: context, builder: (context){ return Container( child: Column( children: [ ], ) ); }); } ), ); } }
(2) leading
import 'package:flutter/material.dart'; void main() { runApp(BottomSheetApp()); } class BottomSheetApp extends StatelessWidget { const BottomSheetApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'myApp', theme: ThemeData( useMaterial3: true, colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue) ), home: Scaffold( appBar: AppBar(title: const Text('Bottom Sheet Sample'),), body: MyBottomSheet(), ), ); } } // 새로운 클래스 class MyBottomSheet extends StatelessWidget { const MyBottomSheet({super.key}); @override Widget build(BuildContext context) { return Center( child: ElevatedButton( child: const Text('show bottom sheet'), onPressed: (){ // 이벤트 핸들러 처리 // showModalBottomSheet(context: context, builder: builder) showModalBottomSheet(context: context, builder: (context){ return Container( child: Column( children: [ ListTile( leading: Icon(Icons.add), title: Text('Add Item'), onTap: (){ Navigator.of(context).pop(); }, ), ListTile( leading: Icon(Icons.remove), title: Text('Remove Item'), onTap: (){ Navigator.of(context).pop(); }, ) ], ) ); }); } ), ); } }
728x90반응형'Flutter' 카테고리의 다른 글
[Flutter] 38. dio 라이브러리를 사용한 HTTP통신 (0) 2024.11.12 [Flutter] 37. TabBar 위젯이란? (0) 2024.11.12 [Flutter] 34. Form 따라 만들어보기 (0) 2024.11.08 [Flutter] 33. Form 위젯 (0) 2024.11.08 [Flutter] 32. 플러터의 기본 위젯들 (1) 2024.11.07 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)