Flutter圈子Flutter中文社区

Flutter-SimpleDialog

2019-07-19  本文已影响1人  哎呀啊噢
SimpleDialog class

介绍:
为用户几个提供选项,可选标题,标题在选项上不边的信息弹出窗.

使用
和其他Dialog一样,作为子Weiget传递给ShowDialog使用;选项使用官方提供的SimpleDialogOption来表示;

代码:

import 'package:flutter/material.dart';

/*
* simpleDialog
* */

class MySimpleDialog extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('SimpleDialog'),),
        backgroundColor: Colors.white,
        body: Center(
          child: RaisedButton(
            onPressed: () {
              _MySimpleDialog(context);
            },
            child: Text(
              'SimpleDialog',
              style: TextStyle(color: Colors.white),
            ),
            color: Colors.green,
          ),
        ));
  }

  void _MySimpleDialog(BuildContext context) {
    showDialog(
        context: context,
        builder: (BuildContext context) {
          return SimpleDialog(
            title: Text(
              'This is SimpleDialog title',
              style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold),
            ),
            children: <Widget>[
              _contentWidget(context, 'Option1'),
              _contentWidget(context, 'Option2'),
              _contentWidget(context, 'Option3'),
            ],
          );
        });
  }

  Widget _contentWidget(BuildContext context, String content) {
    return SimpleDialogOption(
      child: Center(child: Text(content)),
      onPressed: () {
        Navigator.of(context).pop();
      },
    );
  }
}

继承关系

Object -> Diagnosticable -> DiagnosticableTree -> Widget -> StatelessWidget -> SimpleDialog

构造方法

SimpleDialog({Key key, Widget title, EdgeInsetsGeometry titlePadding: const EdgeInsets.fromLTRB(24.0, 24.0, 24.0, 0.0), List<Widget> children, EdgeInsetsGeometry contentPadding: const EdgeInsets.fromLTRB(0.0, 12.0, 0.0, 16.0), Color backgroundColor, double elevation, String semanticLabel, ShapeBorder shape })
Creates a simple dialog. [...]

样式:

image.png
上一篇 下一篇

猜你喜欢

热点阅读