自定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 了頁(yè)面");
   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("開始創(chuàng)建");

   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());
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容