Tinyrack

Drawer

논리적 네 방향에서 스와이프할 수 있는 모달 또는 스캐폴드 시트를 표시해요.

콘텐츠에 맞는 모달 시트나 뷰포트 비율로 스와이프하는 드로어를 논리적 네 방향에서 표시해요.

핵심 속성

속성설명
드래그 핸들상단과 하단 시트에는 기본으로 표시해요. showDragHandle: false로 숨기면 콘텐츠 스크롤은 유지하면서 시트 드래그를 꺼요
크기상단과 하단은 기본적으로 maxExtent까지 콘텐츠에 맞고, snapPoints로 뷰포트 비율의 고정 또는 드래그 크기를 정해요
드래그 소유권surface는 시트 전체에서 확장, 스크롤, 축소를 조율하고, handleOnly는 드로어 이동을 보이는 핸들에만 맡겨 콘텐츠 제스처에 관여하지 않아요
스냅 모션드래그 뒤에는 Tinyrack 모션을 사용하고, 모션 줄이기가 켜지면 즉시 이동해요

상단과 하단 드로어는 기본적으로 콘텐츠 높이에 맞고 최대 뷰포트 전체까지 커져요. 뷰포트 비율의 고정 크기는 snapPoints 값 하나로, 드래그 스냅은 여러 값으로 설정하세요. 기본값인 TRDrawerDragBehavior.surface는 헤더와 콘텐츠 전체에서 시트 이동과 등록된 콘텐츠 스크롤 영역을 조율해요. 콘텐츠가 별도의 스크롤 영역을 소유한다면 handleOnly를 선택하세요. 이때는 보이는 핸들만 드로어를 움직이고 콘텐츠에서 시작한 제스처는 해당 스크롤 영역에 남아요. showDragHandle을 false로 설정하면 콘텐츠 스크롤은 유지하면서 핸들과 시트 드래그를 함께 꺼요. 시작과 끝 드로어에는 핸들이 없으므로 표면 전체의 가로 드래그를 유지해요. 드로어 표면은 뷰포트 끝까지 이어지고 닿을 수 있는 시스템 안전 영역을 보호해요.

설치

패키지를 추가한 뒤 공개 라이브러리를 가져오세요.

flutter pub add tinyrack_ui
import 'package:tinyrack_ui/tinyrack_ui.dart';

플레이그라운드

사용법

import 'package:material_ui/material_ui.dart';
import 'package:tinyrack_ui/tinyrack_ui.dart';

showTRDrawer<void>(
  context: context,
  builder: (_) => const TRDrawer(
    maxExtent: 0.7,
    content: Text('Settings'),
  ),
)

API

제스처 속성

Prop타입 / 기본값용도
dragBehaviorTRDrawerDragBehavior · surface시트 전체와 보이는 핸들 중 어느 영역이 스냅과 닫기 드래그를 소유할지 정해요.
showDragHandlebool · true상단 또는 하단 시트 핸들을 표시해요. 끄면 세로 드로어 드래그도 비활성화돼요.
scrollContentbool · true드로어가 콘텐츠 스크롤 영역을 제공하게 해요. 고정 헤더와 별도 스크롤 영역을 콘텐츠로 넘길 때는 false로 설정하세요.