Flutter开发之——showGeneralDialog

本文详细介绍了Flutter中的showGeneralDialog方法,用于创建自定义提示框。通过pageBuilder参数实现用户自定义视图,barrierDismissible控制是否能点击背景关闭,barrierColor设置遮罩颜色,transitionDuration指定动画时长,transitionBuilder则用于定义动画效果。示例代码展示了如何构建一个带有淡入淡出动画的绿色提示框。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 概述

  • showGeneralDialog:用于自定义提示框
  • 当执行点击事件时,执行showGeneralDialog,pageBuilder返回用户自定义试图

二 showGeneralDialog

2.1 源代码

Future<T?> showGeneralDialog<T extends Object?>({
  required BuildContext context,
  required RoutePageBuilder pageBuilder,
  bool barrierDismissible = false,
  String? barrierLabel,
  Color barrierColor = const Color(0x80000000),
  Duration transitionDuration = const Duration(milliseconds: 200),
  RouteTransitionsBuilder? transitionBuilder,
  bool useRootNavigator = true,
  RouteSettings? routeSettings,
})

2.2 常用属性说明

属性说明取值
pageBuilder自定义参数页面RoutePageBuilder
barrierDismissible是否可以点击背景关闭bool
barrierColor背景颜色Color
transitionDuration动画时长Duration
transitionBuilder构建进出动画RouteTransitionsBuilder

三 示例

代码

RaisedButton(
              child: Text("showGeneralDialog"),
              onPressed: () {
                  showGeneralDialog(
                      context: context,
                      barrierColor: Colors.black.withOpacity(.5),
                      barrierDismissible: true,
                      barrierLabel: '',
                      transitionDuration: Duration(milliseconds: 200),
                      transitionBuilder: (BuildContext context,
                          Animation<double> animation,
                          Animation<double> secondaryAnimation,
                          Widget child) {
                        return ScaleTransition(scale: animation, child: child);
                      },
                      pageBuilder: (BuildContext context,
                          Animation<double> animation,
                          Animation<double> secondaryAnimation) {
                        return Center(
                          child: Container(
                            height: 300,
                            width: 250,
                            color: Colors.lightGreenAccent,
                          ),
                        );
                      });
                })

效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值