바텀시트 (BottomSheet)
바텀시트 (Bottom Sheet)은 모바일 앱 및 모바일 프레임워크에서 자주 사용되는 UI 요소 중 하나입니다. 이것은 화면 하단에서 위로 슬라이딩하여 추가 정보를 제공하거나 사용자와 상호 작용할 수 있는 패널 형태의 위젯입니다. 바텀시트를 사용하여 앱 내에서 다양한 작업 및 정보 표시를 구현할 수 있습니다.
Last updated
바텀시트 (Bottom Sheet)은 모바일 앱 및 모바일 프레임워크에서 자주 사용되는 UI 요소 중 하나입니다. 이것은 화면 하단에서 위로 슬라이딩하여 추가 정보를 제공하거나 사용자와 상호 작용할 수 있는 패널 형태의 위젯입니다. 바텀시트를 사용하여 앱 내에서 다양한 작업 및 정보 표시를 구현할 수 있습니다.
Last updated
AgnesBottomSheet(
child: StandardBottomSheet(),
).showDefault();AgnesBottomSheet(
child: OpenBottomSheet(
bottomSheetOffset: offset,
scrollController: openBottomSheetController,
),
).showDefault();showModalBottomSheet(
context: context,
builder: (context) {
ScrollController scrollController = ScrollController();
return DraggableScrollableSheet(
initialChildSize: 0.9,
minChildSize: 0,
maxChildSize: 1,
builder: (BuildContext context,
ScrollController dragController) {
scrollController = dragController;
return ListView.builder(
controller: scrollController,
itemCount: _children.length + 1,
itemBuilder: (context, index) {
if (index == 0) {
return AnimatedContainer(
duration: const Duration(milliseconds: 300),
width: double.infinity,
height: 100,
decoration: BoxDecoration(
color: Colors.green,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(
dragController.offset == 0.8
? 0
: 40),
topRight: Radius.circular(
dragController.offset == 0.8
? 0
: 40),
),
),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
child: Center(
child: Text(
'Header',
style: Theme.of(context)
.textTheme
.headlineMedium,
),
),
),
Text(
' position ${dragController.offset}',
style: Theme.of(context)
.textTheme
.titleLarge,
)
],
),
);
} else {
final itemIndex = index - 1;
return _children[itemIndex];
}
},
);
},
);
},
);