粉丝1268获赞3388


本课,我们将在 windows 系统上安装 flatter。 现在,如果你使用的是 micros, 那么我希望您跳过本课程,并直接在 micros 课程中安装 flatter。 现在,让我们开始在 windows 设备上安装 flatter。 因此,导航到 flutter dam 并单机开始。现在,我们将在这里选择 windows 应用程序中的第一个应用程序将是移动应用程序。所以点击手机 现在稍微滚动一下。您可以看到,在我们的开发工具中需要安装适用于 windows 的 get, 因此,单击 get for windows。 点击下载。 现在已经下载了 gate, 让我们进入上一部分。现在,我们需要安装这个 android studio。 此 android studio 附带 s d k 平台工具,以及 android 的开发所需 的许多其他工具。因此让我们继续安装它。所以,点击 android studio。 您将被带到 android studio 页面。现在点击下载。现在您可以下载 android studio。 您的版本可能与此版本略有不同,但这并不重要,因为我们不会在 android studio 上进行编码。 我们只会安装它附带的工具和 s d k。 所以点击下载接受条款和条件,并下载适用于 windows 的 android studio。 head up。 现在您的下载应该很快就会开始。 现在我们的 git 已经下载好了,让我们安装它。这将打开安装程序。 如果有任何以前的版本,那么该向导将自动删除它并安装新版本。安装完成后,您可以取消 选中所有复选框,然后单击完成。现在,在下载 android studio 的同时,让我们转到上一页。 从这个开发工具列表中,我们已经下载并安装了适用于 windows 的 beat。 我们的 android studio 正在下载。下载完成后,您可以继续安装此版本的 android studio。 那么让我们从 android studio 安装过程开始吧。 现在您的版本可能有点不同,但这并不重要,所以点击下一步。然后我们将需要这个 androi 虚拟设备,所以也单击下一步。然后你不需要改编这个,单击下一步,然后点击。安装。 此安装过程可能需要一些时间。完成后点击下一步。然后您可以取消选中此选项。稍后,我们将进入 android studio, 所以点击完成。那么回到我们的需求列表。我们已经下载并安装了 windows baggage。 我们已经安装了 android studio, 所以现在我们需要一个文本编辑器来编写我们的代码。所以我们选择了 window studio code。 不过 we do studio code 的安装是在下一刻,所以我现在要跳过这个。我们不需要从这里下载任何东西。现在重要的部分,我们需要安装 flutter software development kit, 也称为 flutter s e k。 现在单击下载并安装。 现在您可以将此 sick 文件下载到您的系统中,所以点击下载,然后你的下载就开始了。下载可能需要一段时间才能完成。您当前下载的 floater 版本可能与此版本 略有不同,但是这没关系。现在下载完成后,让我们继续解压这个 zip 文件。我们需要解压该文件,以便我们可以将其用作 s d k。 因此双击该文件并全部解压。 现在你可以根据需要选中字框,这将显示已提取的文件。现在单击提取。现在一旦提取出来,这就是他应该的样子。因此,在这个文件夹中,我们将有一个 flutter 文件夹,它是我们的软件开发工具包。 正确,现在导航到此并目录。您可以单击此处并复制此路径。 现在复制后,我们将将此路径粘贴到我们的环境变亮中。因此即按 windows 键,然后输入 e m v, 意为环境。你将会得到这个单机此编辑系统环境变良, 然后单击环境变亮。现在双击该路径,创建一条新路径。您可以将您的目录粘贴到此处,所以点击确定。好的,好吧,现在让我们测试一下我们的 flatter sdk 是否工作正常。 因此单击 windows 键,然后输入 c, m, d 及命令提示符。因此启动命令提示符。然后在命令提示符中输入 flutter doctor。 现在只讲解查我们的 flatter 安装是否一切正常。在这里你可以看到我们有两个错误发生。第一个错误是 是因为我们尚未完成 android sdk 组件设置。我们很快就会这样做。由于我们尚未安装文件或程序,因此触发了第二个错误。这是开发 windows 应用程序所必需的, 但我们不需要 windows 应用程序,所以我们可以忽略这个 visual studio 错误。正确的,那么让我们继续启动我们的 android studio。 所以我们可以下载 android s, d, k 并安装在我们的系统中。 所以你现在可以关闭命令提示服并启动 androids。 都有,所以你可以点击下一步。你可以选择这个标准。 然后您将看到将要下载的内容的列表。将下载 android 模拟器和其他不同的 s, d, k 工具,所以点击下一步。 然后你就可以接受所有许可证,你也可以接受这一点。你可以接受这一点。然后点击完成现在下载和安装过程将开始。这将需要一段时间。 安装完所有内容后,您可以单击完成并完成设置。安装后,您将看到此对话框,单击更多操作,然后单击 sdk 管理器。我们需要安装一些东西来让我们的平台做好准备。现在单击 sdk 工具, 并检查这个 android s d k 命令行和这个 n d k 现在单机应用。确认这一点, 这将下载所需的命令行工具。然后是 ndk 工具。下载并安装所有内容后, 单机完成。已完成设置,现在单机应用,然后单机确定。现在打开命令提示服,并输入 flutter doctor。 那么现在 flutter 就能够找到我们的 android studio 了。但我们尚未接受许可证。他建议我们运行此命令, 因此让我们复制此内容。已接受许可。好吧,因此复制此内容,然后将其粘贴到此处,现在点击进入。因此,当你运行此命令时,大多数人可能不会受到此错误。 但对于那些遇到此错误的人,让我们继续调试他。现在,如果你没有受到任何错误,那么你可以跳过一点,然后继续上课。 好吧,当 android s d k 的命令行工具中存在版本不匹配时,我们会收到此错误。因此,如果 您收到此错误,请打开您的 android studio。 点击更多操作。 s d k 管理器。现在切换到这个 s d k 工具, 并且你想取消选中词隐藏过时的软件包。好吧,然后你需要导航到此 android s d k 命令行工具。现在你可能已经正确安装了这个最新版本,所以取消勾选这个。你需要下载这个八点零版本。 好吧,所以点击应用。好的,然后将安装支持的版本。现在我们将能够接受许可证。好吧, 那么我们就等待安装完成吧。安装后单机应用。好的,关闭您的安卓 studio, 然后重新 先启动我们的命令提示服务。现在再次运行 flutter doctor。 现在让我们复制该命令,然后将其粘贴到此处。好吧,现在输入 why, 意味着你想接受这一点。又是 why? why? why? 我们已经接受了所有这些许可。好吧,那么让我们再次运行这个 later doctor 命令。 所以在这里我们可以看到许可证错误不再出现了。但我们仍然收到两个错误。 第一个可以忽略的错误是我们没有开发适用于 windows 的应用程序,所以我们可以忽略这一点。关于第二个错误, 您的 flutter doctor 命令可能不会收到此错误。现在如果你没有收到此错误,那么本课你可以跳过一点, 并开始安装模拟器。但如果您收到此错误,那么这就是你可以解决这个问题的方法。所以,为了修复这个错误,导航到安装 enter studio 的文件夹。在大多数情况下, 安装在本地 c 盘程序文件安卓,然后是安卓 studio。 好吧,如果您之前在安装时更改了位置,然后您就可以继续找到该位置。现在,一旦您进入该目录,我希望你打开这个 jbr 文件夹 控制。这意味着您想要复制所有这些复制,然后导航到此 j r e 文件夹, 然后把它粘贴到这里。现在你想要替换该位置中的所有文件。所以一旦这件事完成了,再次导航到命令提示服务。 现在让我们再次检查一下这个 flutter doctor 命令。在这里您可以看到一切正常, 并且这个错误可以忽略。好吧,现在运行这个 letter doctor 时,如果您收到任何其他错误,然后你可以向 google 寻求帮助,或者对战一出,或者聊天 gdp。 好吧, 这是在设备中安装 water 的标准方法。现在让我们开始安装模拟器。现在您可以再次打开 android studio。 现在让我们创建一个模拟器。因此请单击更多操作。然后是虚拟设备管理器。现在单击这个加号图标, 然后让我们选择我们的设备。我建议您从手机类别中进行选择。然后是像素七,但 击下一步。现在如果没有 pixo 七的选项,然后你可以选择任何一部手机。没关系,现在单击下一步按钮。现在我们将选择要安装在该设备中的 andro 的版本。我目前有这个倒置的蛋糕。 当我添加安装 android studio 时,你可以看看这个 android 版本中的任何一个,或者你可以下载任意 android 版本已在您的设备上使用。目前我的设备中仅提供此功能,所以我想选择这个和下一个。 一切似乎都很好,所以现在点击完成,我们的设备将被创建。现在,如果你想启动该设备,您可以单击此播放按钮。 他将启动我们的模拟器。模拟器的首次启动可能需要一些时间。 现在只剩下我们的 water 应用程序开发了,就是安装 video studio code。 所以我们将在下一刻中安装它。那么我会在那里见到你。

大家好,我是建国,今天给大家带来的是拉特环境的安装, 在前面几期我当中呢给大家介绍了弗拉特的一些优势呀,以及如何为什么要用弗拉特来 开发。那么今天呢给大家带来的是弗拉特的安装教程, 因为在有的时候,虽然你在文章中写的够详细了,但是好多同学可能还是有点含糊,那么今天呢,希望就是通过这个 教程视频教程呢,大家能够更加快速的安装 flat, 然后进行后买的一系列的开发。现在登录这个网站,为什么推荐这个网站呢?因为好多同学可能没有 梯子,所以房屋外网会比较慢,所以可以利用国内的镜像,然后点击开始使用。 然后我今天呢主要给大家介绍的是豌豆系统的想如何安装拉小环境,那么点击豌豆子,然后选择 法拉特 sdk, 因为目前的话是二点五点三的版本,当然你如果想安装其他版本的话呢,点击这 的 sdt 版本列表,然后我们选择学习的话呢,一般会选择在 稳定分支上进行选择,可以看到就是版本 以及他的更新时间都是比较频繁的,然后呢二点五点三,距今也已经一个月左右了,所以说还是比较稳定的。然后呢在普拉特方面呢,取一点二零是一个 重大的百万升级,然后就是一点二二, 然后二点零二点五,那么今天我们就用最新的二点五点三来进行一个安装, 然后点击安装,然后选择下载,下载路径可以随意切换, 比如说我安装到 f 盘,下载到 f 盘这 开始下载,然后等几分钟就会下载完成,等下载完成之后给大家再教如何配置环境变量。配置环境变量呢,其实也是一个非常简单的过程, 让他先下载,然后我做一些前期的准备,就是先打开电脑,点 及鼠标右键,选择属性高级系统,设置环境变量,然后找到 pass, 再 pass 掉, 稍等一会等。哎下载 y 教大家如何配置, 大家也可以下载的时候呢,推荐使用 idm 这个工具,下载速度还可以, 因为他是多现成下来,所以也想到,然后可以看到已经下载完成。下载完成呢,我们就要把它解压,然后解压到就解压到 目前的,这个我就想下面 可以看到解压之前是八百多,这样也不大,还可以, 那么大概稍等两分钟, 就是在解压的过程之中呢,尽量将其解压到没有还原权限的地方,因为你解压到 要把里面前线的地方,可能会带来前线相对应的一些问题, 然后现在解压完成,点击他的路径,选择闭目录,将其路径复制,然后 因为我现在之前已经配置了,所以我要找到之前的,然后改为现在的闭目录。 看到我之前一直晕倒, 我刚才看到我的是不是有大的环境变量,那我可以把大的环境变量删了去,因为现在已经在需要。 为什么这么说呢?因为现在的 plusstk 已经内置了,然后选择确定,然后现在我们可以检查一下是否安装成功,然后用 plus 来进行检查 发出都可能啊,可以完整的列出你的一些详细的一些啊信息,比如说 你现在是否有调试设备以及会下载一些相应的依赖?因为我刚切换闭目录,所以他下载是需要一段时间的,但是也挺快,可以看到二点五点三已经完成, 然后二点五点三可以看到已经支持啊,我的版本安卓版本有点旧了,我需要完了升级这个密室,然后第二个连续设备有两个,为什么是两个呢?可以看到第一个就是 第二个呢,就是在安卓上开发,然后呢现在的白粉呢是二点五点三,至于其他的这些错呢,就是 大家不用关注,然后后面呢这些错呢,都不影响昨天发,嗯,因为我今天是在我家里的电脑,所以说, 嗯和公司的电脑里的截图是不一样的,大家可以按照我的文章里的那个安装步骤进行一个安装,因为我家里的电脑环境比较多,所以可能会报这些错,但是不影响后续的使用。 好了,今天的安装的这个教程呢,就给大家介绍到这, 嗯,现在也算是安装完成了。嗯,那么我们今天就到这,我是建国,我的公众号呢是建国建国前端,然后如果大家 觉得喜欢的话呢,可以去关注我的公众号,在后面呢会给大家带来一些关键点的一些视频教程, 也会在我的公众号上进行一个同步的更新。那么如果大家喜欢今天的这个视频呢,大家可以点赞留言支持加转发,谢谢。

在 flat 当中,如果我们要实现一个动画呢,是非常简单的啊,同学们大家下午好,我是欧阳锋啊,我们继续上课啊,在前面的课程中呢,我们给大家简单的介绍了一下 flat 动画的用法啊, 这节课呢,我们给大家介绍如何自定义路由切换的动画啊,那在默认情况下呢,我们都是使用这个 material page root 这个组件,那使用这个组件的话呢,当我们切换页面的时候, 会使用和平台风格一致的这种路由切换动画,比如说在 ios 下面呢,会左右滑动切换啊,那在安卓上面呢,他就会上下切换, ok, 那这个是他默认的这样一个动画切换的效果啊,是跟平台的这个风格是一致的, ok, 那如果我们希望不管是在 ios 还是在安卓上面啊,都使用这种左右切换, 或者是都使用上下切换的话呢,那这个时候我们就需要自定义路由切换的动画啊,那么这里呢,我们首先来给大家介绍一下啊,如何自定义路由切换的动画, ok, 好,那首先打开我们的原码啊,打开,然后呢打开我们的模拟器啊,在这里,这个地方呢,我们先去创建一个页面啊,这里我们去创建一下,那这个页面呢,我们就叫做 page e, okay, 点 that, 我们就起一个简单的名字啊, class page e 啊, exchange stateless veget。 ok, 好,在这里呢,我们去补全它。好,那这个地方呢,我们用一个 scaffold 组件啊, return scaffold okay, 那这个地方我们加一个 child, 那这个 child 我们简单啊,加一个 body 啊,那这个 body 呢?我们就使用一个 containers, 用一个容器来做,然后这个容器我们,呃指定为红色吧 red, 那这个地方呢,我们指定一个 app 八, app 八,然后呢指定一个 title text, 抬头呢就叫做 page 一,好, ok, 那这个时候呢,我们回到这里的首页,回到这个地方之后呢,在这个地方我们加一个跳转的逻辑啊, navigate 点 push。 那在我们之前的课程中呢,我们给大家讲过,这里我们可以使用 material page root, 然后这个地方我们使用什么呢?使用一个 return, 返回我们的 page 二。 okay, 那这个是在前面给大家讲过的一种方式啊,这里我们导入进来啊, page 一, 这里写错了,然后呢我们给他导入进来,这个地方多了一个括号,删掉。好,那这个时候我们再去点啊,他就跳过来了啊,大家看,跳过来了,这个是安卓默认的一个动画效果啊,大家可以看一下, 那在 ls 上面呢,他应该是一个左右切换的这样一个效果啊,那这个是默认的一种方式,那如果我们要使用自定义动画的话呢,这里我们有两种方式可以实现啊,那在我们的 ppt 上面给大家有讲方法一呢,我们可以使用 page root build 啊,去自定义录入切换动画,那这个是什么意思呢? 这里的意思就是说我们的第二个参数啊, material page root, 我们可以看一下它的实现,它实现了我们的这个 page root 啊,那在这里呢,我们还可以使用 page root 的另外一个实现,就是这里的什么呢?就是这里的啊, page root build 啊,我们可以看一下 page root build 啊,它也是继承了 page root 啊,所以这个地方呢,我们也可以使用它。那这个 page root build 呢?它有两个很重要的参数啊,一个是 page build 啊, 那 page build 的有三个参数啊,这个是一个回调方法,我们可以看一下 page root 啊,它的呃类型点一下,大家看这里 page root builder, 我们点开之后呢,发现它是一个函数,这个函数有三个参数啊,一个是 context 啊,第二个呢是 animation, 第三个呢是 secondary animation。 那我们只要聚焦这个 animation 就可以了啊,那这里的 animation 呢,它保存的是我们在路由切换的时候的差值和状态啊,那这里我们的路由在每每一帧的 切换过程中呢,这里的 animation 呢,都会被调用啊,都会被调用,都会被刷新啊,所以这个时候呢,我们只要拿到这个 animation 呢,就可以做我们自己的一个动画了。 ok, 好,那我们回到这里,我们把这个三个参数呢给它补全,第一个呢是 context, 第二个呢是 animation, 第三个呢是 secondary animation。 好,那回到这里,那这里呢,我们可以返回一个什么呢?我们可以返回一个配置二啊,这里我们可以直接返回配置二啊,配置一。 ok, 那这个是 page build 啊,主要用于构建我们路由的一个页面。那在这里我们还有一个很重要的一个参数叫做什么呢?我们可以看一下,还有一个很重要的参数叫做啊 transition builder。 那这个呢,可以去构建我们的路由切换的一个组件啊,或者说我们路由的一个切换的这样一个效 啊,那在这里我们可以补全他,回到这里,好在这个地方 transition build, 然后这个地方是一个 context animation, 然后呢 secondary animation, 大家看它的参数呢,跟我们这个 page build 是一样的啊,我们可以看一下,是不是一样点开看一下啊,它呢也是有 context 啊,有四个参数啊,这个地方还有一个参数,这里的参数是 child, 那这个 child 是什么呢?这里 child 就是我们这里的 page root build 啊,返回的这个这个组件, 那我们的这个配置 red build 呢,只会在陆游首次创建的时候呢被调用啊,防止去创建多个组件。 ok, 好,那回到这个地方之后,这里我们可以呃 使用我们自己的一些过度组件去自定义我们的动画啊,例如说这个地方我们可以使用什么呢?我们可以使用 return slide transition 啊,使用这样一个 平滑的这样一个切换动画,那这个平滑的切换动画我们怎么样去做呢?大家看这个地方他需要传入的是一个 animation offside 这样一个动画,那这个地方怎么做呢?这个地方我们首先创建一个 turn 啊 const, 这样就叫做 begin 吧,等于 offside。 那在这里呢,我们希望我们的动画啊,是从最下方啊,然后像抽屉一样慢慢的呢 去往上,然后顶到最上方,这个呢是我们要去实现的一个效果,那这个效果怎么样去做呢?那这里首先呢,我们要创建一个 begin, 那 begin 呢?应该是一个呃 x, 答案就是零啊,那 y 呢?应该是一点零,因为他是默认最开始的时候是在最下方啊,在这个位置的时候呢,是一点零啊,在这里,在这个地方的时候是一点零,大家注意啊,在这里的时候是一点零,这个是隐藏的情况下,如果完全展示的时候呢,那这里就是零啊,所以这个地方的笔电呢,是 零和一点零,然后我们创建一个 end, end 呢是 off side, 当然就是全是零了啊,那全是零的话呢,这里我们可以使用 zero, okay, 好,那这个时候我们再去创建一个 twin count, twin 等于 chain, 那这里是两个参数, begin, begin, end, end。 好,这里使用 final, 然后在这个地 方呢,我们就可以传入我们的 train, 同时呢使用 animate, 指定我们这个 parent 呢,就是这里的 animation 啊,就这个地方啊,这个参数里面的 animation, 这个我们刚才讲过了啊,它保存的呢,是我们页面切换的 一个状态和这个差值和动画的差值啊,也就是我们当前页面切换到了什么位置,那通过这样的一个组合呢,会产生一个新的 animation 啊,可以去会去计计算一个新的这样一个差值啊,然后呢产生这样一个上下切换的一个动画效果。 ok, 那这个地方大家别忘了指定我们的 child, 就是这里的 child 啊,也就是我们的页面啊,好,那到这里呢,我们的这个动画效果就已经实现了,那这里我们可以啊,运行给大家看一下,效果好,点击下方的加号。好,大家看,这个是我们的动画呢,很明显是从下 晚上啊,达到一个过度的这样一个效果,那目前我们的这个效果呢,是一个非常匀速的过程,那这个地方呢,我们也可以指定一个 啊,先加速后减速的这样一个效果啊,这个是比较普遍的,那这个地方呢,就需要指定一个曲线动画啊,那或者说指定一个曲线的这样一种变化的呃形式,那这个地方就需要用到我们的什么呢?需要用到我们的这个 curve 啊,那这里我们指定一个 cons curve, 然后指定为 curves 点,我们指定为什么呢?指定为 is 啊,这个效果呢,就是先加速啊,大家看这个曲线动画呢,是先加速啊,然后再慢慢的减速啊,最后会有一个减速的一个效果。 ok, 那来在这个地方我们怎么样去做呢?这个地方我们可以这样去做, 通过 chain 啊链接这样一个 curved twin。 好,这个时候我们再去看一下效果, 点击他,大家看,这个时候呢,他就不再是匀速的一个过程了啊,会有一个先加速后减速的这样一个过程。 ok, 那这个地方我们还可以使用这个 curved animation 去做啊,如果使用 curved animation 怎么样去做呢?我们可以给大家演示一下啊, 那这里我们可以创建一个 final curved animation, 然后 等于 curved animation, 这里的 parent 呢,我们就指定这里的 animation, 然后这里指定 curve。 那这个时候我们怎么样去做呢?这个时候我们可以这样子去做啊,这个时候我们指定 我们的 animation 是这里的 curved animation 就可以了。好,给,那也是非常的简单啊,也是同样的一个效果啊,好,这个呢是通过 page route builded 的方式呢,去创建自定义的路由切换动画。那除了这种方式之外呢,我们还可以 继承我们的 page route 啊,然后去实现自定义的路由切换动画。大家看这里,我们的这个 page route build 呢,它是继承了我们的这个 page route, 所以我们自己呢,也可以继承这个 page route, 然后去实现我们自定义的路由切换动画。好,那这里呢,可能有的同学会问啊,为什么我们需要继承自我们的 page route, 然后自己去实现这种路由切换动画呢? 那这种方式显然更麻烦,那我们为什么还要学习这种方式呢啊,那这里大家想一下啊,这个地方我们使用 page root build, 大家看这里,这个地方啊,我们添加了一个路由切换的这样一个过渡的一个效果,但是这个过渡效果呢,我们没有办法做到啊,当返回的时候呢,我们不去展示这个动画, 那因为我们这个 page root build 呢,我们没有办法拿到当前我们的这个路由是往前,也就说呢是导航还是回退啊,所以这个时候呢,我们就需要去自定义我们的 page root 啊,那这里呢,我们给大家啊演示一下啊, 那回到这里,这个地方,我们去创建一个呃, scale page route, 那 scale page route 呢,就是实现点击当前的这个加号,然后实现一个 慢慢的放大的这样一个过渡效果,当回退的时候呢,就慢慢的去消失啊,所以这个地方呢,我们使用 scale 啊 page, 然后呢 root 点 dot 好,那这个地方我们 class page root, scale page root, 然后继承词我们的 page root 好,然后呢我们去实现它,补全它, ok, 那这个地方我们改成什么呢?这个地方我们改成 final 啊, 然后把这个删掉,这里呢我们改成分号就行了。好,那回到这个地方,那这里呢,我们添加一个构造函数 scale 啊, page route, 选它,然后呢 required 啊,或者删掉这个去掉。好,我们来回到这里,这个地方呢,我们的这个 transition duration 呢,就是动画切换的时间啊, 这里默认呢就是三百毫秒。好,那这个地方呢,我们还需要再添加一个参数啊,这个参数呢,就是用于构建我们的页面啊,那这个地方我们可以使用一个什么呢?这个地方我们可以使用啊, final 啊,这个 veget build, 这个大家应该非常的熟悉了啊,这里直接是 build, 然后呢这个地方我们添加一个 required, required this debut。 好,那这个地方回到,我们继续回到这里啊,这个地方有什么报什么错啊?长量钩子函数不能调用一个非常量,这个地方把 cons 去掉吧, okay, 好,那在这个地方我们有一个 build page 啊,这样一个方法,那这里呢,我们直接把这里通过 build 啊创建的这个 vigid 返回回去就可以了啊,那通过 return build, 然后呢把这这个 context 传进来啊,这里的 build 配置呢,就是去构建我们的路由页面啊, 那在前面的这个配置入的 builder 里面呢?我们给大家呃,讲了啊,这个地方还有一个参数呢,叫做 transition builder 啊,那很明显这个地方我们应该还有一个对应的啊,叫做 build transitions 这样的一个函数,那这个函数呢,就是创建我们路由过度的这样一个效果啊,那这个地方怎么样去做呢?这个地方如果我们要创建一个啊,点击的时候放大,然后回对的时候缩小这样一个效果呢?我们就直接可以使用 return scale transitions 啊, 那这里的呃 skill transition 呢,就是一个放大的这样一个效果啊,那这里的 skill 呢?需要传入一个什么呢?我们需要 传入一个 animation, 那这个 animation 刚好呢就是这个效果啊,那这里的呃 animation 指的是我们录页面去切换的时候,它占用了这个比例啊,从零到一,那这个时候刚好就可以放到我们这里啊,比如说这个地方放放一个 animation, 那大家别忘了这个地方呢,我们还需要添加我们的这个 child, 添加我们的 child, 这个 child, 这个 child 呢,对应的就是这里的 build page 返回的这个页面。 ok, 那回到这里, 我们把这个地方的 page root build 啊,改成我们的这里的 scale page root 啊,然后在这个地方把它删掉啊,这里删掉它 scale page root 啊,这个地方 context, 然后 return 这里的 scale pa 呃, return 这里的 page r 啊, p g。 好,那这个时候呢,我们去点击它。好,大家看这个时候呢,它就是一个 点击的时候放大,然后回退的时候缩小的一个效果。好,那刚才我们说,我们希望我们点击这个回退的时候呢,不要去展示动画,那这个怎么样去做呢?这个地方呢,我们需要用到一个啊参数,那这个参数叫做 active is active, 这个 is active 呢,用于标记我们当前的这个路由导航是往前推进呢?还是往回推进?那如果 is active's true 呢,就表示我们当前是导航啊,到新的页面, 如果是 force 呢,我们是一个返回的这样一个导航,所以这个地方如果我们返回的时候不希望展示动画的话呢,这个地方我们可以直接 return 一个啊, setbox 啊,点 shuric, 然后呢保存, 那这个时候他的动画应该就没有了,我们点击他,然后回返回。大家看,当我们点击返回的时候呢,完全没有效果啊,大家可以看啊, 那这个呢,就是我们通过 page route build 继承的方式去实现自定义动画的一个方法啊,大家可以看到这种方式呢,它的灵活性更高啊,灵活性更高,那如果你要实现呃,非常高度自定义的动画, 就可以使用这种方式去实现。 ok, 那这个呢,就是关于如何自定义路由切换动画部分的讲解啊,那么接下来呢,我们给大家介绍一个很特殊的这个动画啊,这个叫做 hero 动画啊, 那 hero 动画翻译过来呢,就是英雄动画, okay, hero 动画, hero 动画呢,也叫做共享,共享啊,元素动画。 那这里的共享元素动画是什么意思呢?这里我们直接啊给大家上原码啊,然后给大家演示一下它的一个效果。 ok, 那回到这里, 回到这个地方,那这里呢,我们就在我们的 page 一和另外一个页面去展示了啊,这个地方有一个配置一,同样呢,我们再去创建一个 page 二啊, control c control v 啊,这里我们改成 page 二 啊,这个地方配置二。 ok, 那标题也改成配置二好,然后在这个地方呢,我们去添加一个 hero 这个元素啊,在这里我们添加一个 hero, 那这个 hero 元素里面呢,我们添加一个 child, 这个 child 呢,我们添加一个图片啊, image 点 inserts。 那这里的图片呢?就使用我们啊,在上节课 给大家导入进来的啊,这里的刘德华的照片啊,在这里,那点入刘德华,点 vip, 然后在这里呢,我们指定我们的这个照片的高度呢?是一百啊,那这里指定呢?我们的 feet 呢,是适配我们的高度啊, box feet, 点 feet 高度, 然后这个地方我们需要指定一个 tag, 那这个 tag 呢,是用于标记我们当前的一个共享元素的啊,那这里我们直接指定刘德华吧。啊, 好,那然后呢,我们再把这个地方复制一份啊, control c 啊,复制到我们的这个 pgr 的页面来啊,这里的 container 呢?换成我们的这个 hero, 然后在这个地方呢,我们把这个图片呢放大一点啊,放到五百啊, ok, 但大家注意这个地方的 tag 啊,必须与我们前面的这个 tag 一致。这样子呢,大家才知道这两个元素是共享的啊,这两个元素是共享的。好,那这个时候我们在我们的 p g e 这个页面呢,我们添加一个呃,悬浮按钮啊, froting action button, 然后 froting action button, 然后添加一个 unpressed。 好,那这个地方我们怎么样去做呢?我们 navigate 点 push, 然后指定一个什么呢?指定一个 material page route, 那这里我们一个 context, 然后呢 return, return 一个我们的 page on。 好好,接下来呢,我们运行它啊,看 g s, 然后呢,我们点击 啊这里的加号,这个时候我们进到的是 p 一的页面,然后我们点击下方的这个悬浮按钮,点击他,好,大家看这个时候呢,我们的这个刘德华的这个照片的动画呢,是慢慢的放大,然后到达第二个页面呢,就像一个飞机一样,慢慢的去放大啊,慢慢的去飞过来的这种感觉,我们再点击看一下, 大家看啊,非常的自然啊,非常的自然,这个呢就叫做 hero 动画啊,他确实有一点像我们的这个超人一样啊,飞过来,飞到我们的面前,这种感觉, ok, 那这个呢,在我们的实际项目开发中呢,也应用的非常广泛啊, 比如说一些电商类型的项目里边啊,当我们点击这个小图的时候呢,这个小图就会慢慢的放大,然后进到一个详情页,然后呢我们可以点击上方的这个图片呢,去进行切换啊,比如说这个京东呀,然后淘宝啊这些 app 里面呢,可能会 有这样的一些效果。 ok, 这个呢叫做 hero 的动画啊,那这个动画的实现要点呢?有几个?第一个呢就是我们要把我们的这个实现动画的组件呢,包裹在我们的这个 hero 组件里边来。 第二个呢就是我们要指定同样的 tag 啊,在两个页面呢,我们要指定同样的 tag, 表示呢,这个元素是共享的, ok, 那另外一个呢,就是我们的这两个 child 的这个元素啊,比如说这个地方是图片,那这个地方理论上来说呢,我们也可以指定别的东西, 但是如果你去指定别的东西的话呢,他的效果可能就没有那么自然啊,最好是同样类型的一个组件啊,就像这里我们是一张图片啊,并且图片展示的内容也是一样的,那这样的过渡呢,才会比较自然啊,才会比较自然, 这个呢叫做 hero 动画啊,那这里呢,我们给大家留一个问题啊,如何去实现这种 hero 动画呢?也就是说 如果不使用这个 flat 给我们提供的这个黑肉组件,要你自己去实现这样一种黑肉动画,需要怎么样去做呢?那大家呢,可以啊,尝试着去实现一下啊,然后呢,可以把你的这个实现的原码啊,发到我们的这个 qq 交流群啊,给大家分享一下。 好,那今天的课程呢,就先讲到这里了啊,感谢大家的观看啊,大家别忘了点击关注,一键三连,那有条件的同学呢,也可以给我们充充电啊,拜拜。

接下来我给大家分享一些弗拉特的开发经验。弗拉特是谷歌推出的跨平台开发框架,我们可以用它来开发 windows 麦克桌面端应用, 也可以用它的开发安卓 iphone、 ipad 移动端应用。我们只需要编写一套 prada 代码应用就可以在这么多设备上运行。 我们从房写苹果桌面,逐渐开始用简单的代码编写精美的界面。



刚才回答一个粉丝问题,他最近在用弗拉特,也开始学,不知道一些资料,我帮他推荐了,我顺便也就录个视频吧,你给大家看一下啊,这是弗拉特一个电子书,这个是免费的, 他是现在是第二把。那么这个里边你看从每个路由,每个 vj 的每个状态管理,每个组建,所有的都有,听见没?大家你看,如果你直接看他这个官方文档, 这是中文网,你可能会比较困难,但是你看他这个电子书就特别特别的方便,我当时学弗拉他的时候, 就是看着他的第一版的电子书,这里边给你讲每个主页就比我们那个 vivo 的官网要详细,所以这个看完再去给他上去拉一个开完的项目,就能很很快的上手,你知道吗?这个 这里面你看还有组建库,这还有一个弗拉特的一个组建库,因为我在写的时候也用了很多一些组建,所以大家如果学弗拉特,光这个就够了。亲们,你也不用买什么书,也不用买什么资料,也不用买什么课,明白吗?就光看他写,然后去给他把拉像。