SimpleDialog adalah salah satu jenis dari function showDialog. Perbedaannya hanya ada pada action bar nya dimana SimpleDialog tidak memiliki action button. Jadi bisa dibilang SimpleDialog hanya kotak popup saja yang bisa kita isi dengan konten dan tombol. SimpleDialog biasanya digunakan untuk membuat popup yang berisi form atau opsi-opsi lainnya.
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(
title: "Halaman",
home: new Halaman(),
debugShowCheckedModeBanner: false,
));
}
class Halaman extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Show Dialog"),
),
// untuk pemanggilan dengan action dari button
body: Center(
child: MaterialButton(
color: Colors.blueGrey,
onPressed: (){
_showSimpleDialog(context);
},
child: Text("Click Here")
)
)
);
}
//membuat layout dalam SimpleDialog yang berisi form
void _showSimpleDialog(context) {
showDialog(
context: context,
builder: (context) {
return SimpleDialog(
children: <Widget>[
Padding(
padding: EdgeInsets.only(left: 10.0, right: 10.0),
child: Row(
children: <Widget>[
Expanded(
child: Text(
"Tambah Pengguna",
style: TextStyle(fontSize: 20.0),
),
),
IconButton(
icon: Icon(Icons.close),
onPressed: () {
Navigator.pop(context);
},
)
],
),
),
Divider(),
Padding(
padding: EdgeInsets.all(10.0),
child: Text(
"Nama Lengkap",
),
),
Padding(
padding: EdgeInsets.only(left: 10.0, right: 10.0),
child: TextField(
style: new TextStyle(
fontSize: 14.0, height: 1.0, color: Colors.black),
decoration: new InputDecoration(
hintText: "Input nama lengkap",
border: OutlineInputBorder(
borderRadius: new BorderRadius.circular(3.0)),
contentPadding: const EdgeInsets.symmetric(
vertical: 14.0, horizontal: 15.0),
),
),
),
Padding(
padding: EdgeInsets.all(10.0),
child: Text(
"Kontak",
),
),
Padding(
padding: EdgeInsets.only(left: 10.0, right: 10.0),
child: TextField(
style: new TextStyle(
fontSize: 14.0, height: 1.0, color: Colors.black),
decoration: new InputDecoration(
hintText: "Input kontak",
border: OutlineInputBorder(
borderRadius: new BorderRadius.circular(3.0)),
contentPadding: const EdgeInsets.symmetric(
vertical: 14.0, horizontal: 15.0),
),
),
),
Padding(
padding: EdgeInsets.fromLTRB(10.0, 10.0, 10.0, 0),
child: MaterialButton(
color: Colors.blue,
child: Text(
"SIMPAN",
style: TextStyle(color: Colors.white),
),
onPressed: () {
Navigator.pop(context);
},
),
)
],
);
},
);
hasil output setelah dirunning pada emulator:

