91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

AlertDialog實現不同風格的2次確認提示框

發布時間:2020-05-26 09:26:59 來源:億速云 閱讀:453 作者:Leah 欄目:移動開發

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

Flutter版本及Dart版本如下:

1.12.13+hotfix.5Dart版本: 2.7.0

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

根據設計的不同,我們可以選擇Material風格的AlertDialog或者Cupertino(ios)風格的CupertinoAlertDialog,

Material風格基礎用法如下:

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

Material風格效果:

AlertDialog實現不同風格的2次確認提示框

Cupertino(ios)風格基礎用法如下:

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

Cupertino(ios)風格效果如下:

AlertDialog實現不同風格的2次確認提示框

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

showDialog(
    barrierDismissible: false,
    )

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

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

AlertDialog實現不同風格的2次確認提示框

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

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

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

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

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

效果如下:

AlertDialog實現不同風格的2次確認提示框

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

Dialog(
  child: MyDialog(),
);

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

以上就是AlertDialog實現不同風格的2次確認提示框的方法,代碼示例簡單明了,如果在日常工作遇到此問題。通過這篇文章,希望你能有所收獲,更多詳情敬請關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏山县| 南阳市| 万荣县| 乐清市| 岳池县| 赫章县| 方城县| 临泉县| 突泉县| 宁强县| 临海市| 错那县| 扎鲁特旗| 宁安市| 曲麻莱县| 巴南区| 乌海市| 潍坊市| 新龙县| 巩留县| 左权县| 荣成市| 宣威市| 隆德县| 临城县| 石林| 靖边县| 格尔木市| 泽库县| 泾源县| 蓬安县| 吴川市| 合肥市| 华宁县| 曲阜市| 阜宁县| 灵寿县| 湘潭县| 衡水市| 邛崃市| 九龙坡区|