AlertDialog實現(xiàn)不同風(fēng)格的2次確認(rèn)提示框-創(chuàng)新互聯(lián)

這篇文章給大家分享的是AlertDialog實現(xiàn)不同風(fēng)格的2次確認(rèn)提示框的方法,相信大部分人都還沒學(xué)會這個技能,為了讓大家學(xué)會,給大家總結(jié)了以下內(nèi)容,話不多說,一起往下看吧。

創(chuàng)新互聯(lián)公司服務(wù)項目包括馬村網(wǎng)站建設(shè)、馬村網(wǎng)站制作、馬村網(wǎng)頁制作以及馬村網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,馬村網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到馬村省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

Flutter版本及Dart版本如下:

1.12.13+hotfix.5Dart版本: 2.7.0

當(dāng)應(yīng)用程序進(jìn)行重要操作時經(jīng)常需要用戶進(jìn)行2次確認(rèn),以避免用戶的誤操作,比如刪除文件時,一般會彈出提示“是否要刪除當(dāng)前文件”,用戶點擊確認(rèn)后才會進(jìn)行刪除操作,這時我們可以使用提示框(AlertDialog或者CupertinoAlertDialog)。

根據(jù)設(shè)計的不同,我們可以選擇Material風(fēng)格的AlertDialog或者Cupertino(ios)風(fēng)格的CupertinoAlertDialog,

Material風(fēng)格基礎(chǔ)用法如下:

RaisedButton(
  child: Text('切換'),
  onPressed: () {
   showDialog(
     context: context,
     builder: (context) {
      return AlertDialog(
       title: Text('提示'),
       content: Text('確認(rèn)刪除嗎?'),
       actions: <Widget>[
        FlatButton(child: Text('取消'),onPressed: (){},),
        FlatButton(child: Text('確認(rèn)'),onPressed: (){},),
       ],
      );
     });
  },
)

Material風(fēng)格效果:

AlertDialog實現(xiàn)不同風(fēng)格的2次確認(rèn)提示框

Cupertino(ios)風(fēng)格基礎(chǔ)用法如下:

RaisedButton(
  child: Text('切換'),
  onPressed: () {
   showCupertinoDialog(
     context: context,
     builder: (context) {
      return CupertinoAlertDialog(
       title: Text('提示'),
       content: Text('確認(rèn)刪除嗎?'),
       actions: <Widget>[
        CupertinoDialogAction(child: Text('取消'),onPressed: (){},),
        CupertinoDialogAction(child: Text('確認(rèn)'),onPressed: (){},),
       ],
      );
     });
  },
)

Cupertino(ios)風(fēng)格效果如下:

AlertDialog實現(xiàn)不同風(fēng)格的2次確認(rèn)提示框

showDialogAlertDialog配合使用展示Material風(fēng)格對話框,showCupertinoDialogCupertinoAlertDialog配合使用展示iOS風(fēng)格對話框,showCupertinoDialog點擊空白處是無法退出對話框的,而showDialog點擊空白處默認(rèn)退出對話框,barrierDismissible屬性控制點擊空白處的行為,用法如下:

showDialog(
   barrierDismissible: false,
   )

AlertDialog的屬性相對比較豐富,可以設(shè)置title樣式、content樣式、背景顏色、陰影值,設(shè)置是形狀:

AlertDialog(
  title: Text('提示'),
  content: Text('確認(rèn)刪除嗎?'),
  backgroundColor: Colors.lightBlueAccent,
  elevation: 24,
  shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(50)),
  actions: <Widget>[
   FlatButton(child: Text('取消'),onPressed: (){},),
   FlatButton(child: Text('確認(rèn)'),onPressed: (){},),
  ],
)

AlertDialog實現(xiàn)不同風(fēng)格的2次確認(rèn)提示框

用戶點擊“取消”或者“確定”按鈕后退出對話框,App需要知道知道用戶選擇了哪個選項,用法如下:

RaisedButton(
  child: Text('切換'),
  onPressed: () async {
   var result = await showDialog(
     context: context,
     builder: (context) {
      return AlertDialog(
       title: Text('提示'),
       content: Text('確認(rèn)刪除嗎?'),
       actions: <Widget>[
        FlatButton(
         child: Text('取消'),
         onPressed: () {
          Navigator.of(context).pop('cancel');
         },
        ),
        FlatButton(
         child: Text('確認(rèn)'),
         onPressed: () {
          Navigator.of(context).pop('ok');
         },
        ),
       ],
      );
     });
   print('$result');
  },
)

如果你覺得系統(tǒng)提供的這2個風(fēng)格的對話框不夠個性,你可以試試SimpleDialog,用法和AlertDialog基本相同,如下:

SimpleDialog(
  title: Text('提示'),
  children: <Widget>[
   Container(
    height: 80,
    alignment: Alignment.center,

    child: Text('確認(rèn)刪除嗎?'),
   ),
   Divider(height: 1,),
   FlatButton(
    child: Text('取消'),
    onPressed: () {
     Navigator.of(context).pop('cancel');
    },
   ),
   Divider(height: 1,),
   FlatButton(
    child: Text('確認(rèn)'),
    onPressed: () {
     Navigator.of(context).pop('ok');
    },
   ),
  ],
)

效果如下:

AlertDialog實現(xiàn)不同風(fēng)格的2次確認(rèn)提示框

如果你覺得這還是不夠個性,那可以祭出終極大法了,直接使用Dialog,Dialog可以定制任何對話框,只需將對話框的內(nèi)容給child屬性:

Dialog(
  child: MyDialog(),
);

當(dāng)然一般情況下,系統(tǒng)提供的對話框就夠用了,這幾個對話框組件用法基本一樣,不同的地方僅僅是靈活性和使用簡易程度的不要,Dialog最靈活,但使用起來比AlertDialog復(fù)雜一些,AlertDialog使用起來非常簡單,但布局和基本樣式都已經(jīng)固定好,不如Dialog靈活。

以上就是AlertDialog實現(xiàn)不同風(fēng)格的2次確認(rèn)提示框的方法,代碼示例簡單明了,如果在日常工作遇到此問題。通過這篇文章,希望你能有所收獲,更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享文章:AlertDialog實現(xiàn)不同風(fēng)格的2次確認(rèn)提示框-創(chuàng)新互聯(lián)
文章起源:http://muchs.cn/article24/ceesce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、全網(wǎng)營銷推廣建站公司、網(wǎng)站改版、虛擬主機、用戶體驗

廣告

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

網(wǎng)站建設(shè)網(wǎng)站維護公司