27 lines
1.2 KiB
Dart
27 lines
1.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
/// 아래에서 올라와 아래로 닫히는 전체 화면 — Figma 설명 프레임의 「닫기 버튼 클릭 시, 하단 move out
|
|
/// 페이지 종료 후 이전 화면 이동」(퀘스트 생성 `523:18123` · 위치 선택 `523:18207` · 신고하기 `548:21389`
|
|
/// · 이클립스 상세 `516:88158` · 성운 생성 `516:87382` · 행성 생성 `516:87457` · 간편 로그인 `510:86374`).
|
|
/// 이 전환은 앱에서 이 클래스 하나로만 만든다.
|
|
///
|
|
/// `MaterialPageRoute(fullscreenDialog: true)` 는 iOS 에서만 아래로 내려간다(Android 는 기본 전환).
|
|
/// 두 플랫폼 모두 같은 방향으로 움직이게 전환만 바꾼다.
|
|
class SheetRoute<T> extends MaterialPageRoute<T> {
|
|
SheetRoute({required super.builder}) : super(fullscreenDialog: true);
|
|
|
|
@override
|
|
Widget buildTransitions(
|
|
BuildContext context,
|
|
Animation<double> animation,
|
|
Animation<double> secondaryAnimation,
|
|
Widget child,
|
|
) => SlideTransition(
|
|
position: animation.drive(
|
|
Tween(begin: const Offset(0, 1), end: Offset.zero)
|
|
.chain(CurveTween(curve: Curves.easeOutCubic)),
|
|
),
|
|
child: child,
|
|
);
|
|
}
|