封裝的彈窗必須要靈活,滿足實(shí)際開發(fā)中的大部分彈窗,比如有無標(biāo)題、有無內(nèi)容、有無關(guān)閉按鈕、有無操作按鈕以及按鈕的排列樣式等需要滿足多元化~
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、北戴河網(wǎng)站維護(hù)、網(wǎng)站推廣。
共有四個(gè)文件: ww_dialog.dart 、 ww_middle_bottom_dialog_widget.dart 、 ww_top_dialog_widget.dart 、 ww_top_dialog_item_data.dart
彈窗主要調(diào)用類,主要包含: WWDialog.showTopDialog 、 WWDialog.showMiddleDialog 、 WWDialog.showBottomDialog
支持自定義配置背景顏色、字體大小、顏色、統(tǒng)一回調(diào)、自定義按鈕、單獨(dú)回調(diào)、是否帶三角標(biāo)志、任意位置、最大高度、超過可以滑動(dòng)等~
部分展示效果:
支持配置背景顏色、字體大小、顏色、字重、按鈕排列方式、標(biāo)題、內(nèi)容、按鈕支持完全自定義、點(diǎn)擊的回調(diào)等~
部分展示效果:
支持配置背景顏色、字體大小、顏色、字重、按鈕排列方式、標(biāo)題、內(nèi)容、按鈕支持完全自定義、點(diǎn)擊的回調(diào)等~
部分展示效果:
中間、底部彈窗的彈窗widget
頂部彈窗的彈窗widget
頂部彈窗的數(shù)據(jù)源數(shù)據(jù)模型item
github傳送門:
這可能是顆粒度最好的 PopupRoute 彈窗封裝。
Flutter 需要自定義各式各樣的彈窗視圖,總是有些場(chǎng)景系統(tǒng)提供的無法滿足需求,隨使用彈出路由 PopupRoute 進(jìn)行封裝;核心是繼承 PopupRoute 進(jìn)行容器化封裝,將 視圖 child 抽出,用戶可以傳入任意 Widget, 通過 Alignment 調(diào)整 child 視圖顯示位置;
NNPopupRoute.dart
NNAlertDialog.dart
flutter_easyrefresh: ^2.0.5
Pub get一下
下面我就以flutter_easyrefresh這個(gè)插件進(jìn)行講解。
[參照]{ }
注意: 滾動(dòng)組件添加: physics: ClampingScrollPhysics() 可以處理IOS系統(tǒng)的物理滾動(dòng)的效果(即橡皮筋效果)
ListView 是最常用的可滾動(dòng)組件之一,可以沿一個(gè)方向線性排布所有子組件,并且它也支持基于Sliver的延遲構(gòu)建模型
默認(rèn)構(gòu)造函數(shù):
ListView.builder:
ListView.separated:
ListView.separated 可以在生成的列表項(xiàng)之間添加一個(gè)分割組件,它比 ListView.builder 多了一個(gè) separatorBuilder 參數(shù),該參數(shù)是一個(gè)分割組件生成器。
RefreshIndicator 下拉刷新:
RefreshIndicator 是 Material 風(fēng)格的下拉刷新組件。
CupertinoSliverRefreshControl 下拉刷新:
CupertinoSliverRefreshControl 是 ios 風(fēng)格的下拉刷新控件。
上拉加載的功能,需要用到 ScrollController + ListView組件:
pubspec.yaml中配置該庫
先講一下選擇器適配器的格式如下
上面這個(gè)適配器的寫法看起來比較糟糕,數(shù)據(jù)少還可以一個(gè)一個(gè)的寫下去,一旦多了不可能一個(gè)個(gè)去寫,而是需要將給出的數(shù)據(jù)遍歷生成上面的這種格式
參考下面的數(shù)據(jù)數(shù)據(jù)處理,去生成相對(duì)應(yīng)的數(shù)據(jù)適配器