kalismeras61 / flutter_page_transition

This is Flutter Page Transition Package
BSD 2-Clause "Simplified" License
475 stars 57 forks source link

BUG - Report #53

Closed softplaceio closed 2 years ago

softplaceio commented 3 years ago

Hello, I found that when using type: PageTransitionType.scale, with 'scale' the app 'crash' and when I switched to 'fade' it solved the problem. May have forgotten to have added something to address this.

` void main() { runApp(MyApp()); }

class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, theme: ThemeData( primarySwatch: Colors.blue, visualDensity: VisualDensity.adaptivePlatformDensity, ), builder: (context, widget) => ResponsiveWrapper.builder(BouncingScrollWrapper.builder(context, widget!), maxWidth: 1920, minWidth: 450, defaultScale: true, breakpoints: [ ResponsiveBreakpoint.resize(450, name: MOBILE), ResponsiveBreakpoint.resize(800, name: TABLET), ResponsiveBreakpoint.resize(1000, name: TABLET), ResponsiveBreakpoint.resize(1200, name: DESKTOP), ResponsiveBreakpoint.resize(2460, name: "4K"), ], background: Container(color: Color(0xFFF5F5F5))), home: PageAuth(), onGenerateRoute: (settings) { switch (settings.name) { case '/PageHome': return PageTransition( child: PageHome(), type: PageTransitionType.fade, settings: settings, duration: Duration(seconds: 2), reverseDuration: Duration(seconds: 2), ); default: return null; } }, ); } } `

polarby commented 2 years ago

Hi @softplace-io, thanks for asking. Please make sure you have the right format so people can actually read your comment.

Now to your question: The Documentation seems to lack a bit of explanation (@kalismeras61 or it should throw right error messages), but with some transitions, you need to provide extra parameters such as alignment in case of PageTransitionType.scale. Hope this helps.

kalismeras61 commented 2 years ago

@PaulLVoelker , yes right i will throw message if field sare not set.

polarby commented 2 years ago

@kalismeras61 Thanks for your reply.

Weird, I had the same problem as @softplace-io, so I looked up the in the examples and figured it needs an extra parameter. I might need to open a new issue here, but when calling PageTransitionType.scale just by itself (without the alignment parameter), I get the following error message, which is not helpful at all:

Version: page_transition: ^2.0.4

Flutter:

[✓] Flutter (Channel stable, 2.5.3, on macOS 12.0.1 21A559 darwin-x64, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 2020.3)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.1)
[✓] Connected device (2 available)

• No issues found!
(base) MacpaVoe:flutter_app paulvoelker$ flutter doctor -v
[✓] Flutter (Channel stable, 2.5.3, on macOS 12.0.1 21A559 darwin-x64, locale en-GB)
    • Flutter version 2.5.3 at /Users/.../Developer/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18116933e7 (7 weeks ago), 2021-10-15 10:46:35 -0700
    • Engine revision d3ea636dc5
    • Dart version 2.14.4

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/paulvoelker/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 13.1, Build version ...
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] IntelliJ IDEA Ultimate Edition (version 2021.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] Connected device (2 available)
    • ... • ... • android-arm64  • ...
    • Chrome (web)     • chrome           • web-javascript • Google Chrome ...

• No issues found!

Error Message:

======== Exception caught by widgets library =======================================================
The following _CastError was thrown building AnimatedBuilder(animation: Listenable.merge([kAlwaysCompleteAnimation➩ProxyAnimation, kAlwaysDismissedAnimation➩ProxyAnimation]), dirty, state: _AnimatedState#3feed):
Null check operator used on a null value

The relevant error-causing widget was: 
  MaterialApp MaterialApp:file:///Users/.../StudioProjects/.../lib/main.dart:51:14
When the exception was thrown, this was the stack: 
#0      new PageTransition.<anonymous closure> (package:page_transition/src/page_transition.dart:138:39)
#1      PageRouteBuilder.buildTransitions (package:flutter/src/widgets/pages.dart:116:30)
#2      _ModalScopeState.build.<anonymous closure>.<anonymous closure> (package:flutter/src/widgets/routes.dart:825:51)
#3      AnimatedBuilder.build (package:flutter/src/widgets/transitions.dart:1519:19)
#4      _AnimatedState.build (package:flutter/src/widgets/transitions.dart:174:48)
#5      StatefulElement.build (package:flutter/src/widgets/framework.dart:4782:27)
#6      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4665:15)
#7      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#8      Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#9      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5)
#10     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4831:11)
#11     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5)
...     Normal element mounting (118 frames)
#129    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14)
#130    MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6333:36)
#131    Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18)
#132    RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5758:32)
#133    MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6356:17)
#134    Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#135    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#136    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#137    Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#138    StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5)
#139    Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#140    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#141    Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#142    ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5)
#143    Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#144    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#145    Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#146    ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5)
#147    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:181:11)
#148    Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#149    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14)
#150    Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#151    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#152    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#153    Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#154    StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5)
#155    Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#156    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14)
#157    Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#158    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14)
#159    Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#160    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#161    Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#162    ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5)
#163    Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#164    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#165    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#166    Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#167    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2620:33)
#168    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:882:21)
#169    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
#170    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
#171    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
#172    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:996:5)
#176    _invoke (dart:ui/hooks.dart:166:10)
#177    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:270:5)
#178    _drawFrame (dart:ui/hooks.dart:129:31)
(elided 3 frames from dart:async)
====================================================================================================

======== Exception caught by widgets library =======================================================
The following _CastError was thrown building AnimatedBuilder(animation: Listenable.merge([AnimationController#f0de7(⏭ 1.000; paused; for PageTransition<dynamic>)➩ProxyAnimation, kAlwaysDismissedAnimation➩ProxyAnimation➩ProxyAnimation]), dirty, state: _AnimatedState#3feed):
Null check operator used on a null value

The relevant error-causing widget was: 
  MaterialApp MaterialApp:file:///Users/.../StudioProjects/.../lib/main.dart:51:14
When the exception was thrown, this was the stack: 
#0      new PageTransition.<anonymous closure> (package:page_transition/src/page_transition.dart:138:39)
#1      PageRouteBuilder.buildTransitions (package:flutter/src/widgets/pages.dart:116:30)
#2      _ModalScopeState.build.<anonymous closure>.<anonymous closure> (package:flutter/src/widgets/routes.dart:825:51)
#3      AnimatedBuilder.build (package:flutter/src/widgets/transitions.dart:1519:19)
#4      _AnimatedState.build (package:flutter/src/widgets/transitions.dart:174:48)
#5      StatefulElement.build (package:flutter/src/widgets/framework.dart:4782:27)
#6      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4665:15)
#7      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#8      Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#9      StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5)
#10     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#11     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14)
#12     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#13     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14)
#14     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#15     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#16     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#17     ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5)
#18     _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:181:11)
#19     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#20     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14)
#21     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#22     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#23     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#24     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#25     StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5)
#26     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#27     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#28     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#29     ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5)
#30     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#31     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#32     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#33     ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5)
#34     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#35     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#36     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#37     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#38     StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5)
#39     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#40     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#41     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#42     StatelessElement.update (package:flutter/src/widgets/framework.dart:4746:5)
#43     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#44     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#45     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#46     StatelessElement.update (package:flutter/src/widgets/framework.dart:4746:5)
#47     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#48     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14)
#49     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#50     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#51     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#52     ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5)
#53     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#54     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#55     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#56     ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5)
#57     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#58     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#59     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#60     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#61     StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5)
#62     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#63     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#64     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#65     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#66     StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5)
#67     Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
#68     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16)
#69     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#70     Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#71     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2620:33)
#72     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:882:21)
#73     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
#74     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
#75     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
#76     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:996:5)
#80     _invoke (dart:ui/hooks.dart:166:10)
#81     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:270:5)
#82     _drawFrame (dart:ui/hooks.dart:129:31)
(elided 3 frames from dart:async)
====================================================================================================
kartik1225 commented 2 years ago

I am also having the same issue..

          PageTransition(
            type: PageTransitionType.scale,
            duration: const Duration(milliseconds: 500),
            curve: Curves.easeIn,
            child: HomeScreen(),
            inheritTheme: true,
            ctx: context,
          )

When I pass the above configuration it throws the error. But PageTransitionType.fade is working fine

polarby commented 2 years ago

@kartik1225 The error sure is confusing, note though that the i posted the solution here

kartik1225 commented 2 years ago

@PaulLVoelker Thank you so much for your very quick response. with alignment it is working as expected.

kalismeras61 commented 2 years ago

Added error message