flutter 点击旋转动画_Flutter Animation Demo(简单翻转卡片示例)

本文介绍了如何在Flutter中创建一个点击旋转动画,展示了翻转卡片的实现过程,包括使用Matrix4.identity()和setEntry(3, 2, 0.002)设置翻页效果,以及通过ClipRect和Transform实现卡片切割和翻转动画。文章详细讲解了动画逻辑和代码实现,包括动画控制器、Tween动画、Stack和Align等组件的使用。" 101003000,561619,Java Spring Boot 微服务测试入门指南,"['Java开发', 'Spring框架', '微服务测试', 'JUnit', 'Spring Boot教程']
摘要由CSDN通过智能技术生成

最终效果

flip-card.gif

难点

翻页效果。

通过 Matrix4.identity()..setEntry(3, 2, 0.002) 设置翻页效果。

identity()初始化 4x4 矩阵。

setEntry(3, 2, 0.002) 将矩阵的第3行第2列设置为0.002。作用是类似设置物体到摄像机的距离,越远物体看起来越小,越近看起来物体越大。

卡片切割效果

ClipRect

布局规划

位置

层叠

用户视角状态

角度

第 1 层

显示

-

第 2 层

隐藏

-

第 1 层

显示

-

第 2 层

隐藏

垂直于屏幕

下 2 层的动画需要,转换角度,使其层面垂直于屏幕,达到隐藏效果,用以承接上层动画。

动画实现逻辑

布局分为 2 层堆栈,每层分上下 2 个卡片。

当数值变化时,只需要变更显示层和隐藏层的数值即可。

动画默认执行一次,需要使用 reset 和 forward 达到重启效果。

代码

import 'dart:math';

import 'package:flutter/material.dart';

class CurvePage extends StatefulWidget {

CurvePage({Key key}) : super(key: key);

@override

_CurvePageState createState() => _CurvePageState();

}

class _CurvePageState extends State {

@override

Widget build(BuildContext context) {

return Scaffold(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值