栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Flutter自定义动画对话框

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Flutter自定义动画对话框

要创建对话框,可以使用Overlay 或Dialog类。如果要像在给定框架中那样添加动画,则可以像以下示例中那样使用AnimationController。该
CurvedAnimation类是用于创建动画的弹跳效果。

更新:通常,最好使用

showDialog
函数显示对话框,因为关闭和手势由Flutter处理。我已经更新了该示例,该示例现在与之一起运行,showDialog您可以通过点击背景来关闭对话框。

弹跳对话框动画

您可以将以下代码复制并粘贴到新项目中并进行调整。它本身是可运行的。

import 'package:flutter/material.dart';void main() => runApp(new MyApp());class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return MaterialApp(title: 'Flutter Demo', theme: ThemeData(), home: Page());  }}class Page extends StatelessWidget {  @override  Widget build(BuildContext context) {    return Scaffold(      body: Center(        child: RaisedButton.icon( onPressed: () {   showDialog(     context: context,     builder: (_) => FunkyOverlay(),   ); }, icon: Icon(Icons.message), label: Text("PopUp!")),      ),    );  }}class FunkyOverlay extends StatefulWidget {  @override  State<StatefulWidget> createState() => FunkyOverlayState();}class FunkyOverlayState extends State<FunkyOverlay>    with SingleTickerProviderStateMixin {  AnimationController controller;  Animation<double> scaleAnimation;  @override  void initState() {    super.initState();    controller =        AnimationController(vsync: this, duration: Duration(milliseconds: 450));    scaleAnimation =        CurvedAnimation(parent: controller, curve: Curves.elasticInOut);    controller.addListener(() {      setState(() {});    });    controller.forward();  }  @override  Widget build(BuildContext context) {    return Center(      child: Material(        color: Colors.transparent,        child: ScaleTransition(          scale: scaleAnimation,          child: Container( decoration: ShapeDecoration(     color: Colors.white,     shape: RoundedRectangleBorder(         borderRadius: BorderRadius.circular(15.0))), child: Padding(   padding: const EdgeInsets.all(50.0),   child: Text("Well hello there!"), ),          ),        ),      ),    );  }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/394817.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号