FLUTTER ECOSYSTEM

KreatorDev/zoom_tap_animation

Zoom Tap Animation은 App Store(ios 앱)의 '오늘' 탭에서 항목을 길게 터치했을 때 발생하는 줌 애니메이션 효과를 구현할 수 있게 해주는 패키지입니다. 항목을 누르면 확대되고, 떼면 축소됩니다.

zoom_tap_animation 프로젝트 이미지
Stars
3
Forks
7
최근 푸시(UTC)
2023. 3. 29.
프로젝트 상태
활성
Ayoub Kremcht GitHub avatar
GITHUB User

Ayoub Kremcht ↗

📱 Software Developer 🎨 UI/UX Designer

언어DartHTMLSwiftKotlinObjective-C

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 2 개
  • flutter{"sdk":"flutter"}
  • flutter_test개발 의존성{"sdk":"flutter"}

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

README 펼치기 / 접기

pub package

Zoom Tap Animation

Zoom Tap Animation is is a package that allows you to make an zoom animation effect similar to App Store's (ios app) items in Today tab, when you long tap on some item, it start to zoom in then it zoom out when you release it.

Screenshots:

Source of idea

The idea is inspired from App Store app in Today tab where you can long tap on some item and it start to zoom in then zoom out as shown in the screenshot below.

https://raw.githubusercontent.com/KreatorDev/zoom_tap_animation/main/screenshots/original_idea.gif
Example:

Check out the example project in the example folder.

https://raw.githubusercontent.com/KreatorDev/zoom_tap_animation/main/screenshots/example.gif

Installation:

add the package to your dependencies
dependencies:
  zoom_tap_animation: ^1.1.0
import 'package:zoom_tap_animation/zoom_tap_animation.dart';

Usage:

default use of ZoomTapAnimation widget
ZoomTapAnimation(
      onTap: (){},
      child: YOUR_WIDGET
);
and you can also define custom parameters
ZoomTapAnimation(
      child: YOUR_WIDGET,
      onTap: (){},
      onLongTap: (){},
      enableLongTapRepeatEvent: false,
      longTapRepeatDuration: const Duration(milliseconds: 100),
      begin: 1.0,
      end: 0.93,
      beginDuration: const Duration(milliseconds: 20),
      endDuration: const Duration(milliseconds: 120),
      beginCurve: Curves.decelerate,
      endCurve: Curves.fastOutSlowIn
);
also you can use ZoomTapAnimation with your custom gestures
ZoomTapAnimation(
      child: GestureDetector(
      onTap: () {},
      onLongPress: (){},
      onDoubleTap: (){},
      // you can add more gestures...
      child: Container(color: Colors.yellow, width: 100.0, height: 100.0),
      ),
);
parameters
parameter description default
child your child widget that you want to put the zoom effect on.
onTap what should happen when you tap on the widget. null
onLongTap what should happen when you long tap on the widget. null
enableLongTapRepeatEvent option to enable long tap loop which repeat every onTap event (in case onLongTap is specified, it repeats the onLongTap event). false
longTapRepeatDuration the duration between every onTap/onLongTap loop event. const Duration(milliseconds: 100)
begin the size of widget you want to begin with. 1.0
end the size of widget you want to begin with. 0.93
beginDuration the duration of the begin zoom in animation. const Duration(milliseconds: 20)
endDuration the duration of the end zoom in animation. const Duration(milliseconds: 120)
beginCurve the curve animation type of the begin zoom in animation. Curves.decelerate
endCurve the curve animation type of the end zoom in animation. Curves.fastOutSlowIn