Reputation: 625
I have a problem using AnimatedSplashScreen
, everything works fine to the moment I add a pageTransitionType
. Then I get an error:
The following _CastError was thrown building AnimatedBuilder(animation: Listenable.merge([kAlwaysCompleteAnimation➩ProxyAnimation, kAlwaysDismissedAnimation➩ProxyAnimation]), dirty, state: _AnimatedState#bd6f7): Null check operator used on a null value
This is a simple app which generates that problem:
import 'package:animated_splash_screen/animated_splash_screen.dart';
import 'package:flutter/material.dart';
import 'package:page_transition/page_transition.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: AnimatedSplashScreen(
splash: Icon(Icons.person),
pageTransitionType: PageTransitionType.scale, //with that line commented there is no error
nextScreen: HomePage()
),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container();
}
}
I have tried running many commands like flutter pub get etc.
Also, dependencies in pubspec.yaml
are running smoothly:
animated_splash_screen: ^1.1.0
page_transition: ^2.0.1-nullsafety.0
Upvotes: 6
Views: 3570
Reputation: 427
you can try this when import this package import'package:page_transition/page_transition.dart';
import 'package:animated_splash_screen/animated_splash_screen.dart';
import 'package:flutter/material.dart';
import 'package:page_transition/page_transition.dart';
class SplashView extends StatelessWidget {
const SplashView({super.key});
@override
Widget build(BuildContext context) {
return AnimatedSplashScreen(
splash: 'images/splash.png',
pageTransitionType: PageTransitionType.fade,
animationDuration: const Duration(seconds: 6),
splashTransition: SplashTransition.slideTransition,
nextScreen: const MainView(),
);
}
}
Upvotes: 0
Reputation: 625
Actually after all these years, I have found the answer myself.
The problem was, that the Animated Splash Screen
Widget actually has two different parameters. One for the transition of the Splash animation splashTransition
, and one for the next screen transition pageTransistionType
.
So The simple app, that solved the question asked and allows for using a scale transition would look like this:
import 'package:animated_splash_screen/animated_splash_screen.dart';
import 'package:flutter/material.dart';
import 'package:page_transition/page_transition.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: AnimatedSplashScreen(
splash: const Icon(Icons.person),
splashTransition: SplashTransition.scaleTransition,
pageTransitionType: PageTransitionType.fade, //with that line commented there is no error
nextScreen: HomePage()
),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container();
}
}
Upvotes: 0
Reputation: 59
Apparently, we must add the page_transition as a dependency.
There's a youtube video https://www.youtube.com/watch?v=q-e5t3qnB_M&t=1s
Here's the GitHub with the documentation https://github.com/kalismeras61/flutter_page_transition
I hope this helps you.
Upvotes: -1
Reputation: 298
Not sure how to solve the scale problem specifically, but you can change the transition type to another kind, for instance,
pageTransitionType: PageTransitionType.fade
Upvotes: -1
Reputation: 37
I had the same problem and could recreate it. As I understood, you are trying to use the Property 'scale' for the pageTransitionType, like:
pageTransitionType: PageTransitionType.scale,
If you want to use scale, you will have to use (for example) a Navigator.push() within a PageTransition like this:
ElevatedButton(
child: Text('Scale Transition Second Page'),
onPressed: () {
Navigator.push(
context,
PageTransition(
curve: Curves.linear,
type: PageTransitionType.scale,
alignment: Alignment.topCenter,
child: SecondPage(),
),
);
},
),
For using .scale as TransitionType you'll need an 'alignment' like it's shown in my example.
Further information:
https://github.com/kalismeras61/flutter_page_transition/issues/53#issuecomment-983511302
https://pub.dev/packages/page_transition/example
Upvotes: 0