當前位置:編程學習大全網 - 源碼下載 - 壹種更優雅的Flutter Dialog解決方案

壹種更優雅的Flutter Dialog解決方案

系統自帶的Dialog實際上就是Push了壹個新頁面,這樣存在很多好處,但是也存在壹些很難解決的問題

上面這些痛點,簡直個個致命 ,當然,還存在壹些其它的解決方案,例如:

很明顯,使用Overlay可移植性最好,目前很多toast和dialog三方庫便是使用該方案,使用了壹些loading庫,看了其中源碼,穿透背景解決方案,和預期想要的效果大相徑庭、壹些dialog庫自帶toast顯示,但是toast顯示卻又不能和dialog***存(toast屬於特殊的信息展示,理應能獨立存在),導致我需要多依賴壹個Toast庫

基於上面那些難以解決的問題,只能自己去實現,花了壹些時間,實現了壹個Pub包,基本該解決的痛點都已解決了,用於實際業務沒什麽問題

使用 FlutterSmartDialog 包裹下child即可,下面就可以愉快的使用SmartDialog了

使用Overlay的依賴庫,基本都存在壹個問題,難以對返回事件的監聽,導致觸犯返回事件難以關閉彈窗布局之類,想了很多辦法,沒辦法在依賴庫中解決該問題,此處提供壹個 BaseScaffold ,在每個頁面使用 BaseScaffold ,便能解決返回事件關閉Dialog問題

當時想解決穿透暗色背景,和背景後面的控件互動的時候,我幾乎立馬想到這倆個控件,先了解下這倆個控件吧

分析

這種方案,成功實現想要的穿透效果,這裏了解下 behavior 的幾種屬性

有戲了!很明顯translucent是有希望的,嘗試了幾次,然後成功實現了想要的效果

註意,這邊有幾個坑點,提壹下

下面是寫的壹個驗證小示例

這個庫花了壹些時間去構思和實現,算是解決幾個很大的痛點

FlutterSmartDialog壹些信息

狀態管理

  • 上一篇:寫壹個linux下寫個關於c語言的雙守護進程,就是監視壹個進程,當其死掉,馬上將其重啟
  • 下一篇:老師布置的作業,在vs2008下,用c#語言,opengl技術畫壹面五星紅旗,求高手幫忙啊
  • copyright 2024編程學習大全網