首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android 10页面转换

Android 10页面转换
EN

Stack Overflow用户
提问于 2020-12-13 18:19:13
回答 2查看 907关注 0票数 0

我想在我的应用程序中为所有设备(包括29以下的sdk版本)创建Android 10,像页面转换一样。

我知道,在颤栗中,我们可以建立我们自己的自定义页面转换动画,但我不知道如何拥有的设备与Android 10的缩放效果。

到目前为止

代码语言:javascript
复制
import 'package:flutter/material.dart';

Route zoomTransitionRoute(Widget child) {
  return PageRouteBuilder(
      pageBuilder: (context, animation, secondaryAnim) {
        return ScaleTransition(
          scale: animation,
          child: child,
        );
      },
      transitionsBuilder: (context, animation, secondaryAnim, child) {
        var begin = Offset(0.0, 0.1);
        var end = Offset(0.0, 0.0);

        var curve = Curves.ease;
        var tween = Tween(begin: begin, end: end);
        var curvedAnim = CurvedAnimation(parent: animation, curve: curve);
        return SlideTransition(
          position: tween.animate(curvedAnim),
          child: child,
        );
      },
      transitionDuration: Duration(milliseconds: 200));
}

这看起来不像是我想要的东西。有人能帮我吗?

编辑

这就是我想要达到的

注意父页面是如何缩放的,那么子页面也是如何从几乎.9的比例缩放的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-10 15:15:20

我找到了一种使用内置PageTransitionsTheme来解决这个问题的方法。

在父MaterialApp中,

代码语言:javascript
复制
MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: lightTheme,
      darkTheme: darkTheme,
      themeMode: ThemeMode.system,
      home: RegisterPage(),
    );

lightThemedarkTheme可以有一个pageTransitionsTheme属性,

代码语言:javascript
复制
ThemeData lightTheme = ThemeData(
  //...
  pageTransitionsTheme: myPageTransitionsTheme,
  //...
);

myPageTransitionsTheme被初始化为,

代码语言:javascript
复制
PageTransitionsTheme pageTransitionsTheme = PageTransitionsTheme(builders: {
  TargetPlatform.android: ZoomPageTransitionsBuilder(),
  TargetPlatform.iOS: ZoomPageTransitionsBuilder()
});

在iOS和Android上都进行了测试,可以工作!

票数 3
EN

Stack Overflow用户

发布于 2020-12-14 15:59:47

你可以试试这个转位

因为有不同的转换效果,所以这里也有您想要的。

代码语言:javascript
复制
Navigator.push(context, PageTransition(type: PageTransitionType.fade, child: DetailScreen()));

此外,您还可以直接使用淡入转换(您可以根据需要更改此转换),.like此

代码语言:javascript
复制
Navigator.push( context, 
PageRouteBuilder(
 pageBuilder: (c, a1, a2) => Page2(), 
  transitionsBuilder: (c, anim, a2, child) => 
   FadeTransition(opacity: anim, child: child), 
   transitionDuration: Duration(milliseconds: 
   2000),
 ),
 );

还有更多细节,看看这个。

https://flutter.dev/docs/cookbook/animation/page-route-animation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65279088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档