Flutter CupertinoPageTransition Widget使用详解

CupertinoPageTransition Widget是一个Cupertino风格的页面过渡效果小部件,它可以在不同的路由之间提供iOS风格的过渡效果,类似于Flutter中的PageRouteBuilder。

CupertinoPageTransition Widget具有以下属性:

  • primaryRouteAnimation: 一个Animation类型的值,表示进入页面的动画。
  • secondaryRouteAnimation: 一个Animation类型的值,表示退出页面的动画。
  • child: 一个Widget类型的值,表示要显示的页面部件。
  • linearTransition: 一个bool类型的值,表示是否使用线性过渡效果。默认值为false,表示使用缩放过渡效果。

下面是一个使用CupertinoPageTransition Widget的例子:

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      navigationBar: CupertinoNavigationBar(
        middle: Text('My App'),
      ),
      child: GestureDetector(
        onTap: () {
          Navigator.of(context).push(
            CupertinoPageRoute(builder: (context) => SecondPage()),
          );
        },
        child: Center(
          child: Text('Hello, world!'),
        ),
      ),
    );
  }
}

class SecondPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CupertinoPageTransition(
      primaryRouteAnimation: AlwaysStoppedAnimation(1),
      secondaryRouteAnimation: AlwaysStoppedAnimation(0),
      child: CupertinoPageScaffold(
        navigationBar: CupertinoNavigationBar(
          middle: Text('Second Page'),
        ),
        child: Center(
          child: Text('Welcome to the second page!'),
        ),
      ),
    );
  }
}

在上面的例子中,我们使用了CupertinoPageTransition Widget来提供iOS风格的页面过渡效果。我们将其包装在CupertinoPageRoute Widget中,以便在导航到第二个页面时使用它。我们设置了primaryRouteAnimation和secondaryRouteAnimation的值,以便在进入页面时使用不透明的动画,退出页面时使用透明的动画。页面的主体内容是一个居中的Text Widget。

总之,CupertinoPageTransition Widget是一个非常有用的Cupertino风格的小部件,可以为您的应用程序提供iOS风格的过渡效果,并提供一致的用户体验。

powered by Gitbook© 2023 编外计划 | 最后修改: 2023-11-24 03:36:59

results matching ""

    No results matching ""