zoukankan      html  css  js  c++  java
  • Flutter——AlertDialog组件、SimpleDialog组件、showModalBottomSheet组件(弹窗组件)

    • AlertDialog组件

    import 'package:flutter/material.dart';
    
    void main() {
      runApp(MaterialApp(
        title: "DialogWidget",
        home: MyApp(),
      ));
    }
    
    class MyApp extends StatefulWidget {
      @override
      _MyAppState createState() => _MyAppState();
    }
    
    class _MyAppState extends State<MyApp> {
    
      _alertDialog() async{
        var result = await showDialog(
            barrierDismissible: false,  // 表示点击灰色背景的时候是否消失弹出框
            context: context,
            builder: (context) {
              return AlertDialog(
                title: Text("提示信息"),
                content: Text("您确定要删除吗?"),
                actions: <Widget>[
                  FlatButton(
                    child: Text("取消"),
                    onPressed: () {
                      print("取消");
                      Navigator.of(context).pop("Cancel");
                    },
                  ),
                  FlatButton(
                    child: Text("确定"),
                    onPressed: () {
                      print("确定");
                      Navigator.of(context).pop("Ok");
                    },
                  )
                ],
              );
            }
        );
        print(result);
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Center(
            child: RaisedButton(
              child: Text("AlertDialog"),
              onPressed: _alertDialog,
            ),
          )
        );
      }
    }
    • SimpleDialog组件

    import 'package:flutter/material.dart';
    
    void main() {
      runApp(MaterialApp(
        title: "DialogWidget",
        home: MyApp(),
      ));
    }
    
    class MyApp extends StatefulWidget {
      @override
      _MyAppState createState() => _MyAppState();
    }
    
    class _MyAppState extends State<MyApp> {
    
      _simpleDialog() async{
        var result = await showDialog(
            barrierDismissible: true,  // 表示点击灰色背景的时候是否消失弹出框
            context: context,
            builder: (context) {
              return SimpleDialog(
                title: Text("选择内容"),
                children: <Widget>[
                  SimpleDialogOption(
                    child: Text("Option A"),
                    onPressed: () {
                      print("Option A");
                      Navigator.pop(context,"A");
                    },
                  ),
                  Divider(),
                  SimpleDialogOption(
                    child: Text("Option B"),
                    onPressed: () {
                      print("Option B");
                      Navigator.pop(context,"B");
                    },
                  ),
                  Divider(),
                  SimpleDialogOption(
                    child: Text("Option C"),
                    onPressed: () {
                      print("Option C");
                      Navigator.pop(context,"C");
                    },
                  )
                ],
              );
            }
        );
        print(result);
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Center(
            child: RaisedButton(
              child: Text("SimpleDialog"),
              onPressed: _simpleDialog,
            ),
          )
        );
      }
    }
    • showModalBottomSheet组件

    import 'package:flutter/material.dart';
    
    void main() {
      runApp(MaterialApp(
        title: "DialogWidget",
        home: MyApp(),
      ));
    }
    
    class MyApp extends StatefulWidget {
      @override
      _MyAppState createState() => _MyAppState();
    }
    
    class _MyAppState extends State<MyApp> {
    
      _modelBottomSheet() async{
        var result = await showModalBottomSheet(
            context: context,
            builder: (context) {
              return Container(
                height: 220.0,
                child: Column(
                  children: <Widget>[
                    ListTile(
                      title: Text("分享 A"),
                      onTap: () {
                        Navigator.pop(context,"分享 A");
                      },
                    ),
                    Divider(),
                    ListTile(
                      title: Text("分享 B"),
                      onTap: () {
                        Navigator.pop(context,"分享 B");
                      },
                    ),
                    Divider(),
                    ListTile(
                      title: Text("分享 C"),
                      onTap: () {
                        Navigator.pop(context,"分享 C");
                      },
                    )
                  ],
                ),
              );
            }
        );
        print(result);
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Center(
            child: RaisedButton(
              child: Text("showModalBottomSheet"),
              onPressed: _modelBottomSheet,
            ),
          )
        );
      }
    }
  • 相关阅读:
    事务隔离级别
    OpenSessionInView
    图像平滑处理(滤波)
    [原]Nginx+Lua服务端合并静态文件
    检查数据倾斜分布
    SQL Server研究之统计信息—发现过期统计信息并处理具体解释
    GDALWarp设置GDALWarpOptions::dfWarpMemoryLimit过大时处理失败
    Android Studio 2.0 稳定版新特性介绍
    供应商和管理员查看供应商地址簿信息SQL
    Table AdvanceTable针对表内行禁用multipleSelection , singleSelection
  • 原文地址:https://www.cnblogs.com/chichung/p/12060450.html
Copyright © 2011-2022 走看看