From e8e089d3c6d52a663303fd0dfa1572434ebcde79 Mon Sep 17 00:00:00 2001 From: laiiihz Date: Thu, 4 Mar 2021 10:00:12 +0800 Subject: [PATCH] [add] init repo, add animatedRotate. --- .gitignore | 74 +++++++++++++++ .metadata | 10 ++ CHANGELOG.md | 5 + README.md | 14 +++ lib/animated_collection.dart | 5 + lib/src/animated_rotate.dart | 46 +++++++++ pubspec.lock | 147 +++++++++++++++++++++++++++++ pubspec.yaml | 54 +++++++++++ test/animated_collection_test.dart | 5 + 9 files changed, 360 insertions(+) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 CHANGELOG.md create mode 100644 README.md create mode 100644 lib/animated_collection.dart create mode 100644 lib/src/animated_rotate.dart create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 test/animated_collection_test.dart diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1985397 --- /dev/null +++ b/.gitignore @@ -0,0 +1,74 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +build/ + +# Android related +**/android/**/gradle-wrapper.jar +**/android/.gradle +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java + +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Flutter.podspec +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/flutter_assets/ +**/ios/Flutter/flutter_export_environment.sh +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..a77f842 --- /dev/null +++ b/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 60bd88df915880d23877bfc1602e8ddcf4c4dd2a + channel: stable + +project_type: package diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..7ef92ea --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,5 @@ +# CHANGELOG + +## [0.0.1] - Add AnimatedRotate + +* AnimatedRotate. diff --git a/README.md b/README.md new file mode 100644 index 0000000..dd3a86c --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +# animated_collection + +A flutter collection of a lot of animated widgets like animatedOpacity widget. + +## Getting Started + +This project is a starting point for a Dart +[package](https://flutter.dev/developing-packages/), +a library module containing code that can be shared easily across +multiple Flutter or Dart projects. + +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/lib/animated_collection.dart b/lib/animated_collection.dart new file mode 100644 index 0000000..5bbdb0f --- /dev/null +++ b/lib/animated_collection.dart @@ -0,0 +1,5 @@ +library animated_collection; + +import 'package:flutter/material.dart'; + +part 'src/animated_rotate.dart'; \ No newline at end of file diff --git a/lib/src/animated_rotate.dart b/lib/src/animated_rotate.dart new file mode 100644 index 0000000..e907b10 --- /dev/null +++ b/lib/src/animated_rotate.dart @@ -0,0 +1,46 @@ +part of animated_collection; + +///AnimatedRotate +class AnimatedRotate extends ImplicitlyAnimatedWidget { + final Widget child; + final Duration duration; + final Curve curve; + final double angle; + + AnimatedRotate({ + Key? key, + required this.child, + this.duration = const Duration(milliseconds: 400), + this.curve = Curves.easeInOutCubic, + required this.angle, + }) : super( + key: key, + duration: duration, + curve: curve, + ); + @override + ImplicitlyAnimatedWidgetState createState() => + _AnimatedRoateState(); +} + +class _AnimatedRoateState extends AnimatedWidgetBaseState { + Tween? _rotateTween; + + @override + Widget build(BuildContext context) { + // return AnimatedOpacity() + return Transform.rotate( + angle: _rotateTween?.evaluate(animation) ?? 0, + child: widget.child, + ); + } + + @override + void forEachTween(visitor) { + _rotateTween = visitor( + _rotateTween, + widget.angle, + (dynamic value) => Tween(begin: value), + ) as Tween?; + } +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..8cd6264 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,147 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.5.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.0" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.1.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.2.0" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.1.0" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.15.0" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.2.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.12.10" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.3.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.8.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.8.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.10.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.2.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.2.19" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.3.0" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.0" +sdks: + dart: ">=2.12.0 <3.0.0" + flutter: ">=1.17.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..c25fe8a --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,54 @@ +name: animated_collection +description: A flutter collection of a lot of animated widgets like animatedOpacity widget. +version: 0.0.1 +author: +homepage: https://github.com/laiiihz/animated_collection + +environment: + sdk: ">=2.12.0 <3.0.0" + flutter: ">=1.17.0" + +dependencies: + flutter: + sdk: flutter + +dev_dependencies: + flutter_test: + sdk: flutter + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + + # To add assets to your package, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + # + # For details regarding assets in packages, see + # https://flutter.dev/assets-and-images/#from-packages + # + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # To add custom fonts to your package, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts in packages, see + # https://flutter.dev/custom-fonts/#from-packages diff --git a/test/animated_collection_test.dart b/test/animated_collection_test.dart new file mode 100644 index 0000000..0da434d --- /dev/null +++ b/test/animated_collection_test.dart @@ -0,0 +1,5 @@ +import 'package:flutter_test/flutter_test.dart'; + +void main() { + test('adds one to input values', () {}); +}