Flutter 有没有办法在颤振中使用CupertinoAlertDialog创建pop模态?
应用程序背后的功能:Flutter 有没有办法在颤振中使用CupertinoAlertDialog创建pop模态?,flutter,flutter-layout,Flutter,Flutter Layout,应用程序背后的功能: 右上角的足球是一个图标按钮 一旦点击了足球图标按钮,它会在屏幕中间创建一个模态弹出窗口,而模态框的外部则模糊。 警告框显示标题“Success!”,然后显示内容“You's in The football universe!” 我已经包含了一个图像示例,演示了代码成功后的效果 import'包装:flift/cupertino.dart'; 进口“包装:颤振/材料.省道”; 导入“包装:材料\设计\图标\颤振/材料\设计\图标\颤振.dart”; void main()=
import'包装:flift/cupertino.dart';
进口“包装:颤振/材料.省道”;
导入“包装:材料\设计\图标\颤振/材料\设计\图标\颤振.dart”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“欢迎来到弗利特”,
家:脚手架(
appBar:appBar(
背景颜色:颜色。深紫色[200],
行动:[
图标按钮(
图标:图标(
足球,
颜色:颜色。灰色[800],
),
iconSize:30,
按下:()=>{
库珀蒂诺阿尔托酒店(
标题:文本('Success!'),
内容:文本(“你在足球世界里!”),
),
},
),
],
),
正文:中(
child:Text('Hello World'),
),
),
);
}
}
问题:
看起来您需要调用showDialog并将您的CupertinoAlertDialog传递给构建器
onPressed: () => {
showDialog(
context: context,
builder: (BuildContext context) => CupertinoAlertDialog(
title: Text('Success!'),
content: Text('You are in the football universe!')
),
),
},
看起来您需要调用showDialog并将您的CupertinoAlertDialog传递给构建器
onPressed: () => {
showDialog(
context: context,
builder: (BuildContext context) => CupertinoAlertDialog(
title: Text('Success!'),
content: Text('You are in the football universe!')
),
),
},
您可以复制粘贴运行下面的完整代码
步骤1:您可以使用
showDialog
步骤2:将
MaterialApp
移动到上层void main()=>runApp(MaterialApp(标题:“欢迎来到颤振”,主页:MyApp())代码>
代码片段
Future<void> _handleClickMe() async {
return showDialog<void>(
context: context,
barrierDismissible: false, // user must tap button!
builder: (BuildContext context) {
return CupertinoAlertDialog(
title: Text('Success!'),
content: Text('You are in the football universe!'),
);
},
);
}
Future\u handleClickMe()异步{
返回显示对话框(
上下文:上下文,
barrierDismissible:false,//用户必须点击按钮!
生成器:(BuildContext上下文){
返回CupertinoAlertDialog(
标题:文本('Success!'),
内容:文本(“你在足球世界里!”),
);
},
);
}
工作演示
完整代码
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
void main() => runApp(MaterialApp(title: 'Welcome to Flutter', home: MyApp()));
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
Future<void> _handleClickMe() async {
return showDialog<void>(
context: context,
barrierDismissible: false, // user must tap button!
builder: (BuildContext context) {
return CupertinoAlertDialog(
title: Text('Success!'),
content: Text('You are in the football universe!'),
);
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.deepPurple[200],
actions: <Widget>[
IconButton(
icon: Icon(
MdiIcons.soccer,
color: Colors.grey[800],
),
iconSize: 30,
onPressed: () => _handleClickMe(),
),
],
),
body: Center(
child: Text('Hello World'),
),
);
}
}
import'包装:flift/cupertino.dart';
进口“包装:颤振/材料.省道”;
导入“包装:材料\设计\图标\颤振/材料\设计\图标\颤振.dart”;
void main()=>runApp(MaterialApp(标题:“欢迎来到颤振”,主页:MyApp());
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
Future\u handleClickMe()异步{
返回显示对话框(
上下文:上下文,
barrierDismissible:false,//用户必须点击按钮!
生成器:(BuildContext上下文){
返回CupertinoAlertDialog(
标题:文本('Success!'),
内容:文本(“你在足球世界里!”),
);
},
);
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
背景颜色:颜色。深紫色[200],
行动:[
图标按钮(
图标:图标(
足球,
颜色:颜色。灰色[800],
),
iconSize:30,
按下时:()=>\u handleClickMe(),
),
],
),
正文:中(
child:Text('Hello World'),
),
);
}
}
您可以复制粘贴运行下面的完整代码
步骤1:您可以使用showDialog
步骤2:将MaterialApp
移动到上层void main()=>runApp(MaterialApp(标题:“欢迎来到颤振”,主页:MyApp())代码>
代码片段
Future<void> _handleClickMe() async {
return showDialog<void>(
context: context,
barrierDismissible: false, // user must tap button!
builder: (BuildContext context) {
return CupertinoAlertDialog(
title: Text('Success!'),
content: Text('You are in the football universe!'),
);
},
);
}
Future\u handleClickMe()异步{
返回显示对话框(
上下文:上下文,
barrierDismissible:false,//用户必须点击按钮!
生成器:(BuildContext上下文){
返回CupertinoAlertDialog(
标题:文本('Success!'),
内容:文本(“你在足球世界里!”),
);
},
);
}
工作演示
完整代码
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
void main() => runApp(MaterialApp(title: 'Welcome to Flutter', home: MyApp()));
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
Future<void> _handleClickMe() async {
return showDialog<void>(
context: context,
barrierDismissible: false, // user must tap button!
builder: (BuildContext context) {
return CupertinoAlertDialog(
title: Text('Success!'),
content: Text('You are in the football universe!'),
);
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.deepPurple[200],
actions: <Widget>[
IconButton(
icon: Icon(
MdiIcons.soccer,
color: Colors.grey[800],
),
iconSize: 30,
onPressed: () => _handleClickMe(),
),
],
),
body: Center(
child: Text('Hello World'),
),
);
}
}
import'包装:flift/cupertino.dart';
进口“包装:颤振/材料.省道”;
导入“包装:材料\设计\图标\颤振/材料\设计\图标\颤振.dart”;
void main()=>runApp(MaterialApp(标题:“欢迎来到颤振”,主页:MyApp());
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
Future\u handleClickMe()异步{
返回显示对话框(
上下文:上下文,
barrierDismissible:false,//用户必须点击按钮!
生成器:(BuildContext上下文){
返回CupertinoAlertDialog(
标题:文本('Success!'),
内容:文本(“你在足球世界里!”),
);
},
);
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
背景颜色:颜色。深紫色[200],
行动:[
图标按钮(
图标:图标(
足球,
颜色:颜色。灰色[800],
),
iconSize:30,
按下时:()=>\u handleClickMe(),
),
],
),
正文:中(
child:Text('Hello World'),
),
);
}
}
为什么需要有状态的小部件而不是无状态的小部件?为什么需要“未来”、“异步”和“异步”@您需要上下文,所以您需要有状态的小部件。这就是我们