自定PopupRoute(一)

import 'package:flutter/material.dart';
import 'dart:ui';


class PopShow extends PopupRoute {
 final Duration _duration = Duration(milliseconds: 300);


 PopShow({Key ? key});

 static pop(BuildContext context) {
   // _CustomPopRouteViewState.of(context).dismiss();
   print("pop 了页面");
   Navigator.of(context).pop();
 }

 @override
 Color get barrierColor => Colors.transparent;

 @override
 bool get barrierDismissible => false;

 @override
 String get barrierLabel => "";

 @override
 Widget buildPage(BuildContext context, Animation<double> animation,
     Animation<double> secondaryAnimation) {
   return CustomPopRouteView();
 }

 @override
 Duration get transitionDuration => _duration;

}

class CustomPopRouteView extends StatefulWidget {


 CustomPopRouteView({Key? key}) : super(key: key);

 @override
 State<CustomPopRouteView> createState() => _CustomPopRouteViewState();
}

class _CustomPopRouteViewState extends State<CustomPopRouteView> {
 @override
 void initState() {
   print("开始创建");

   super.initState();
 }

 @override
 Widget build(BuildContext context) {
   return GestureDetector(
     onTap: (){
       Navigator.pop(context);
     },
     child: Container(
       // color: Colors.blue,
       child: Text("123"),
     ),
   );
 }
}

使用

 Navigator.push(context, PopShow());
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容