Bài viết này mình sẽ hướng dẫn các bạn cách hiển thị dialog trong Flutter để hiển thị các thông báo, popup, form nhập liệu,…
Với Dialog bạn có thể làm khá nhiều thứ cũng như cũng có nhiều cách để sử dụng nó nên các bạn có thể vọc thêm các thuộc tính của nó.
Hiển thị dialog trong Flutter
Flutter cho phép hiển thị Material dialog (Android style) và Cupertino dialog (iOS).
void _showMaterialDialog() {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text('Material Dialog'),
content: Text('Hey! I am Coflutter!'),
actions: <Widget>[
TextButton(
onPressed: () {
_dismissDialog();
},
child: Text('Close')),
TextButton(
onPressed: () {
print('HelloWorld!');
_dismissDialog();
},
child: Text('HelloWorld!'),
)
],
);
});
}
Còn nếu bạn muốn hiển thị với style iOS thì Flutter cũng có hỗ trợ cho bạn
void _showCupertinoDialog() {
showDialog(
context: context,
builder: (context) {
return CupertinoAlertDialog(
title: Text('Cupertino Dialog'),
content: Text('Hey! I am Coflutter!'),
actions: <Widget>[
TextButton(
onPressed: () {
_dismissDialog();
},
child: Text('Close')),
TextButton(
onPressed: () {
print('HelloWorld!');
_dismissDialog();
},
child: Text('HelloWorld!'),
)
],
);
});
}
Dưới đây là full code bạn có thể chạy thử để xem
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
void main() {
runApp(MyStatelessApp());
}
class MyStatelessApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Dialog Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: StatelessWidgetDemo(),
);
}
}
class StatelessWidgetDemo extends StatefulWidget {
@override
_StatelessWidgetDemoState createState() => _StatelessWidgetDemoState();
}
class _StatelessWidgetDemoState extends State<StatelessWidgetDemo> {
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
appBar: AppBar(
title: Text('Dialog Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () {
_showMaterialDialog();
},
child: Text('Show Material Dialog'),
),
SizedBox(
height: 20,
),
ElevatedButton(
onPressed: () {
_showCupertinoDialog();
},
child: Text('Show Cupertino Dialog'),
),
SizedBox(
height: 20,
),
ElevatedButton(
onPressed: () {
_showSimpleDialog();
},
child: Text('Show Simple Dialog'),
)
],
),
)));
}
void _showMaterialDialog() {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text('Material Dialog'),
content: Text('Hey! I am Coflutter!'),
actions: <Widget>[
TextButton(
onPressed: () {
_dismissDialog();
},
child: Text('Close')),
TextButton(
onPressed: () {
print('HelloWorld!');
_dismissDialog();
},
child: Text('HelloWorld!'),
)
],
);
});
}
_dismissDialog() {
Navigator.pop(context);
}
void _showCupertinoDialog() {
showDialog(
context: context,
builder: (context) {
return CupertinoAlertDialog(
title: Text('Cupertino Dialog'),
content: Text('Hey! I am Coflutter!'),
actions: <Widget>[
TextButton(
onPressed: () {
_dismissDialog();
},
child: Text('Close')),
TextButton(
onPressed: () {
print('HelloWorld!');
_dismissDialog();
},
child: Text('HelloWorld!'),
)
],
);
});
}
void _showSimpleDialog() {
showDialog(
context: context,
builder: (context) {
return SimpleDialog(
title: Text('Chosse an Option'),
children: <Widget>[
SimpleDialogOption(
onPressed: () {
_dismissDialog();
},
child: const Text('Option 1'),
),
SimpleDialogOption(
onPressed: () {
_dismissDialog();
},
child: const Text('Option 2'),
),
SimpleDialogOption(
onPressed: () {
_dismissDialog();
},
child: const Text('Option 3'),
),
SimpleDialogOption(
onPressed: () {
_dismissDialog();
},
child: const Text('Option 4'),
),
],
);
});
}
}
Trên đây là bài viết hướng dẫn cách hiển thị dialog trong Flutter cho những bạn đang làm quen với Flutter. Nếu có gì thắc mắc các bạn vui lòng để lại bình luận để mình có thể giải đáp thêm cho các bạn.
Một số từ khóa bằng tiếng Anh để các bạn có thể tìm hiểu thêm như “How to show dialog on Flutter“, “Flutter dialog“, “show Flutter Dialog ios style“, “show alert in flutter“, “showdialog flutter“, “flutter modal dialog example“
Nếu bạn muốn học Lập trình Flutter cơ bản có thể xem qua Lập trình Flutter cơ bản trên 1kho.info. Và theo dõi Fanpage 1Kho.info để theo dõi những bài mới nhất https://www.facebook.com/1kho.info