Flutter 处理dialog点击事件回调
import 'package:Flutter/material.dart'; import 'package:scoped_model/scoped_model.dart'; void main() { runApp(new RootLayout()); } class RootLayout extends StatefulWidget { @override State<StatefulWidget> createState() { return new RootLayoutM(); } } class RootLayoutM extends State<RootLayout> implements OnDialogClickListener { String str = "show simple dialog"; String showMsg = "show simple dialog"; @override void onOk() { print('onOK'); setState(() { showMsg = str + " onOK Click"; }); } @override void onCancel() { print('onCancel'); setState(() { showMsg = str + " onCancel Click"; }); } @override Widget build(BuildContext context) { return new MaterialApp( home: new Scaffold( body: new Center( child: new Text(showMsg, style: new TextStyle(color: Color(0xFF00FF00))), ), floatingActionButton: new MyFloat(this), )); } } //定义一个抽象类 abstract class OnDialogClickListener { void onOk(); void onCancel(); } class MyFloat extends StatelessWidget { final OnDialogClickListener callback; MyFloat(this.callback); _showMyMaterialDialog(BuildContext context) { print("_showMyMaterialDialog"); showDialog( context: context, builder: (context) { return new AlertDialog( title: new Text("title"), content: new Text("内容内容内容内容内容内容内容内容内容内容内容"), actions: <Widget>[ new FlatButton( onpressed: () { callback.onOk(); Navigator.of(context).pop(); }, child: new Text("确认"), ), new FlatButton( onpressed: () { callback.onCancel(); Navigator.of(context).pop(); }, child: new Text("取消"), ), ], ); }); } @override Widget build(BuildContext context) { // Todo: implement build return new FloatingActionButton( child: new Text("showDialog"), onpressed: () { _showMyMaterialDialog(context); }); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。