showDialog(
context: context,builder: (context) {
return AlertDialog(
...
);
}
);
Navigator.of(context,rootNavigator: true).pop(result)
Navigator.pop(context,result)
showCupertinoDialog(
context: context,builder: (context) {
return CupertinoAlertDialog(
...
);
});
showGeneralDialog(
context: context,barrierDismissible:true,barrierLabel: '',transitionDuration: Duration(milliseconds: 200),pageBuilder: (BuildContext context,Animation<double> animation,Animation<double> secondaryAnimation) {
return Center(
child: Container(
height: 300,width: 250,color: Colors.lightGreenAccent,),);
});
showGeneralDialog(
context: context,barrierColor: Colors.black.withOpacity(.5),...
)
showGeneralDialog(
transitionBuilder: (BuildContext context,Animation<double> secondaryAnimation,Widget child) {
return ScaleTransition(scale: animation,child: child);
},...
)
showAboutDialog(
context: context,applicationIcon: Image.asset(
'images/bird.png',height: 100,width: 100,applicationName: '应用程序',applicationVersion: '1.0.0',applicationLegalese: 'copyright 老孟,一枚有态度的程序员',children: <Widget>[
Container(
height: 30,color: Colors.red,Container(
height: 30,color: Colors.blue,color: Colors.green,)
],);
-
applicationIcon
:应用程序的图标。
-
applicationName
:应用程序名称。
-
applicationVersion
:应用程序版本。
-
applicationLegalese
:著作权(copyright)的提示。
-
children
:位置如上图的红蓝绿色的位置。
- 在
pubspec.yaml
中配置支持国际化:
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
- 在MaterialApp中配置当前区域:
MaterialApp(
title: 'Flutter Demo',localizationsDelegates: [
GlobalMaterialLocalizations.delegate,GlobalWidgetsLocalizations.delegate,],supportedLocales: [
const Locale('zh','CH'),const Locale('en','US'),locale: Locale('zh'),...
)
showLicensePage(
context: context,);
showBottomSheet(
context: context,builder: (context) {
return Container(height: 200,color: Colors.lightBlue);
});
showBottomSheet(
context: context,backgroundColor: Colors.lightGreenAccent,elevation:20,shape: CircleBorder(),builder: (context) {
return Container(height: 200);
});
showModalBottomSheet(
context: context,builder: (BuildContext context) {
return BottomSheet(...);
});
showModalBottomSheet(
context: context,backgroundColor: Colors.lightBlue,elevation: 10,shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(30)),...
)
showModalBottomSheet(
context: context,isScrollControlled: true,builder: (BuildContext context) {
return ListView.builder(
itemBuilder: (context,index) {
return ListTile(
title: Text('老孟$index'),);
},itemExtent: 50,itemCount: 50,);
});
showCupertinoModalPopup(
context: context,builder: (BuildContext context) {
return CupertinoActionSheet(
title: Text('提示'),message: Text('是否要删除当前项?'),actions: <Widget>[
CupertinoActionSheetAction(
child: Text('删除'),onPressed: () {},isDefaultAction: true,CupertinoActionSheetAction(
child: Text('暂时不删'),isDestructiveAction: true,);
}
);
showCupertinoModalPopup(
context: context,filter: ImageFilter.blur(sigmaX: 5.0,sigmaY: 5.0),...
)
showMenu(
context: context,position: RelativeRect.fill,items: <PopupMenuEntry>[
PopupMenuItem(child: Text('语文')),PopupMenuDivider(),CheckedPopupMenuItem(
child: Text('数学'),checked: true,PopupMenuItem(child: Text('英语')),]);
final RenderBox button = context.findRenderObject();
final RenderBox overlay = Overlay.of(context).context.findRenderObject();
final RelativeRect position = RelativeRect.fromRect(
Rect.fromPoints(
button.localToGlobal(Offset(0,0),ancestor: overlay),button.localToGlobal(button.size.bottomRight(Offset.zero),Offset.zero & overlay.size,);
showSearch(context: context,delegate: CustomSearchDelegate());
class CustomSearchDelegate extends SearchDelegate<String>{
@override
List<Widget> buildActions(BuildContext context) {
return null;
}
@override
Widget buildLeading(BuildContext context) {
return null;
}
@override
Widget buildResults(BuildContext context) {
return null;
}
@override
Widget buildSuggestions(BuildContext context) {
return null;
}
}
@override
Widget buildLeading(BuildContext context) {
return IconButton(
icon: Icon(Icons.arrow_back,onPressed: (){
close(context,'');
},);
}
@override
Widget buildSuggestions(BuildContext context) {
return ListView.separated(
itemBuilder: (context,index) {
return ListTile(
title: Text('老孟 $index'),onTap: () {
query = '老孟 $index';
},);
},separatorBuilder: (context,index) {
return Divider();
},itemCount: Random().nextInt(5),);
}
@override
List<Widget> buildActions(BuildContext context) {
return [
IconButton(
icon: Icon(
Icons.clear,onPressed: () {
query = '';
},)
];
}
@override
Widget buildResults(BuildContext context) {
return ListView.separated(
itemBuilder: (context,index) {
return Container(
height: 60,alignment: Alignment.center,child: Text(
'$index',style: TextStyle(fontSize: 20),itemCount: 10,);
}