flutter 动画闪屏页面转换类型错误

vltsax25  于 2022-11-25  发布在  Flutter
关注(0)|答案(3)|浏览(135)

我在使用AnimatedSplashScreen时遇到了问题,在添加pageTransitionType之前一切正常。然后我得到一个错误:
生成AnimatedBuilder时引发了以下_CastError(动画:合并([k始终完成动画代理动画,k始终取消动画代理动画]),脏,状态:_动画状态#bd6f7):对空值使用了空值检查运算符
这是一个简单的应用程序,它产生的问题:

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();
  }
}

我尝试过运行许多命令,如 flutter pub get 等。
此外,pubspec.yaml中的依赖关系也在平稳运行:

animated_splash_screen: ^1.1.0
page_transition: ^2.0.1-nullsafety.0
ltqd579y

ltqd579y1#

我遇到了同样的问题,可以重新创建它。据我所知,您正在尝试使用pageTransitionType的属性“scale”,如下所示:

pageTransitionType: PageTransitionType.scale,

如果你想使用scale,你必须在PageTransition中使用一个Navigator.push(),如下所示:

ElevatedButton(
    child: Text('Scale Transition Second Page'),
        onPressed: () {
        Navigator.push(
            context,
            PageTransition(
            curve: Curves.linear,
            type: PageTransitionType.scale,
            alignment: Alignment.topCenter,
            child: SecondPage(),
            ),
        );
    },
),

要将.scale用作TransitionType,您需要一个“alignment”,如我的示例中所示。
更多信息:
https://github.com/kalismeras61/flutter_page_transition/issues/53#issuecomment-983511302
https://pub.dev/packages/page_transition/example

gpnt7bae

gpnt7bae2#

不确定如何具体解决缩放问题,但可以将过渡类型更改为其他类型,例如,

pageTransitionType: PageTransitionType.fade
yacmzcpb

yacmzcpb3#

我还有另一个技巧,比如你可以直接点击(android studio:- cmd+mouse_click)AnimatedSplashScreen进入软件包代码,之后你可以直接从那里更改页面过渡,如image.

所示

相关问题