干得好!showDialog使用WidgetBuilder作为参数,因此您可以返回任何小部件。
import 'package:flutter/material.dart';void main() { runApp(new MaterialApp(home: new MyApp()));}class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState();}class _MyAppState extends State<MyApp> { final _formKey = GlobalKey<FormState>(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Flutter"), ), body: Center( child: RaisedButton( onPressed: () { showDialog( context: context, builder: (BuildContext context) { return alertDialog( content: Stack(overflow: Overflow.visible,children: <Widget>[ Positioned( right: -40.0, top: -40.0, child: InkResponse( onTap: () { Navigator.of(context).pop(); }, child: CircleAvatar( child: Icon(Icons.close), backgroundColor: Colors.red, ), ), ), Form( key: _formKey, child: Column( mainAxisSize: MainAxisSize.min, children: <Widget>[ Padding( padding: EdgeInsets.all(8.0), child: TextFormField(), ), Padding( padding: EdgeInsets.all(8.0), child: TextFormField(), ), Padding( padding: const EdgeInsets.all(8.0), child: RaisedButton( child: Text("Submitß"), onPressed: () { if (_formKey.currentState.validate()) { _formKey.currentState.save(); } }, ), ) ], ), ),], ), ); }); }, child: Text("Open Popup"), ), ), ); }}希望对您有帮助!



