欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

flutter彈層,flutter彈窗組件

Flutter 自定義彈窗組件

封裝的彈窗必須要靈活,滿足實際開發(fā)中的大部分彈窗,比如有無標題、有無內容、有無關閉按鈕、有無操作按鈕以及按鈕的排列樣式等需要滿足多元化~

公司主營業(yè)務:網(wǎng)站建設、成都做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出博愛免費做網(wǎng)站回饋大家。

共有四個文件: ww_dialog.dart 、 ww_middle_bottom_dialog_widget.dart 、 ww_top_dialog_widget.dart 、 ww_top_dialog_item_data.dart

彈窗主要調用類,主要包含: WWDialog.showTopDialog 、 WWDialog.showMiddleDialog 、 WWDialog.showBottomDialog

支持自定義配置背景顏色、字體大小、顏色、統(tǒng)一回調、自定義按鈕、單獨回調、是否帶三角標志、任意位置、最大高度、超過可以滑動等~

部分展示效果:

支持配置背景顏色、字體大小、顏色、字重、按鈕排列方式、標題、內容、按鈕支持完全自定義、點擊的回調等~

部分展示效果:

支持配置背景顏色、字體大小、顏色、字重、按鈕排列方式、標題、內容、按鈕支持完全自定義、點擊的回調等~

部分展示效果:

中間、底部彈窗的彈窗widget

頂部彈窗的彈窗widget

頂部彈窗的數(shù)據(jù)源數(shù)據(jù)模型item

github傳送門:

Flutter中showDialog()后關閉Dialog

在耗時操作的時候,一般都要彈出一個加載框,然后在完成的時候再把加載框關掉,在Flutter中可以直接用showDialog()來彈出一個對話框。

這是一個簡單的提示對話框,包含了關閉按鈕,點擊就能關閉。但一般的耗時操作完成,就需要我們自己把dialog關閉掉。

首先,開啟dialog的時機。由于我們需要獲取到BuildContext,所以就得等build()方法走完,這里可以用Future.delayed()來等創(chuàng)建好BuildContext再進行創(chuàng)建,或者用Timer來延遲操作,我選擇了前者。

其中delayed()在initState()結尾來做就行,這里參考網(wǎng)友封裝了一個LoadingDialog。

那么接下來要在什么時機關閉呢?

一開始,我理所當然的以為,是在異步方法結束后,去更新界面的時候關閉,也就是setState(() {})的時候,可是不管怎么嘗試,用Navigator.pop()不行,用Navigator.of(context, rootNavigator: true).pop(result)也不行,用FlutterBoost.singleton.close(id)也不行,用FlutterBoost.singleton.closeCurrent()也不行,都會直接把非Dialog的頁面也關閉掉,這讓我百思不得其解,因為showDialog()的本質也是新建了一個Route出來,也就是最頂層的頁面是彈出的Dialog,可是為什么關不掉呢。

一番思前想后,把showDialog的邏輯移到和異步邏輯同級,也就是setState(() {})外面,然后把showDialog()自身創(chuàng)建的BuildContext傳進去就能正常關閉了。也就是,在setState(() {})的時候,其實用的context還是非Dialog頁面的,所以關閉的當然就不是Dialog了。

持有Dialog自己的BuildContext,然后在異步以后調用就行了。

Flutter 之 彈性布局 (Row、Column) (十一)

彈性布局允許子組件按照一定比例來分配父容器空間

Flex組件和Row、Column屬性主要的區(qū)別就是多一個direction。

當direction的值為Axis.horizontal的時候,則是Row。

當direction的值為Axis.vertical的時候,則是Column。

它們之中都有主軸(MainAxis)和交叉軸(CrossAxis)的概念:

Row可以沿水平方向排列其子widget。定義如下:

示例1 - 基本使用

示例2 - 基線對齊

基線是英文字母X的下端兩點連成的一條線

示例3 - 水平方向包裹

Column可以沿垂直方向排列其子widget。定義如下:

Column 基本使用 示例

再看一個示例

運行效果如下:

我們發(fā)現(xiàn)文本并沒有居中?

解釋:

實際上,Row和Column都只會在主軸方向占用盡可能大的空間,而交叉軸的長度則取決于他們最大子元素的長度。如果我們想讓本例中的兩個文本控件在整個手機屏幕中間對齊,我們有兩種方法:

運行效果如下:

如果Row里面嵌套Row,或者Column里面再嵌套Column,那么只有最外面的Row或Column會占用盡可能大的空間,里面Row或Column所占用的空間為實際大小,下面以Column為例說明

如果要讓里面的Column占滿外部Column,可以使用Expanded 組件:

當前名稱:flutter彈層,flutter彈窗組件
URL網(wǎng)址:http://chinadenli.net/article20/dsiicco.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、移動網(wǎng)站建設、自適應網(wǎng)站、用戶體驗、小程序開發(fā)、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)