为什么这个警告对话框在 flutter 中不起作用
why this alert dialog is not working in flutter
我使用下面的代码在用户点击特定列表项时收到提醒
import 'package:flutter/material.dart';
import 'package:rflutter_alert/rflutter_alert.dart';
class RamList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return _myListView(context);
}
}
Widget _myListView(BuildContext context) {
final titles = [
'Part-1',
'part-2',
'part-3',
'part-4',
'part-5',
];
final numbers = [
'1 ',
'2 ',
'3 ',
'4 ',
'5 ',
];
functionOne() {
Navigator.push(
context, new MaterialPageRoute(builder: (context) => RamOne()));
}
functionTwo() {
Navigator.push(context, MaterialPageRoute(builder: (context) => RamTwo()));
}
functionThree() {
Navigator.push(
context, MaterialPageRoute(builder: (context) => RamThree()));
}
functionFour() {
Navigator.push(context, MaterialPageRoute(builder: (context) => RamFour()));
}
functionFive()=>_onAlertButtonPressed1;
final List<Function> onTaps = [
functionOne,
functionTwo,
functionThree,
functionFour,
functionFive,
];
return ListView.builder(
itemCount: titles.length,
itemBuilder: (context, index) {
return Card(
elevation: 50,
child: InkWell(
child: Row(
children: <Widget>[
Container(
height: 100.0,
width:50.0,
decoration: BoxDecoration(
gradient:LinearGradientStyle.linearGradient(
orientation:LinearGradientStyle.ORIENTATION_HORIZONTAL,
gradientType: LinearGradientStyle.GRADIENT_TYPE_AMIN
)
),),
Container(
margin: EdgeInsets.all(10),
child: Text(
numbers[index],
)),
Flexible(child: Container(
margin: EdgeInsets.all(10),
child: GradientText((titles[index]),
gradient:gradient,
style:TextStyle(fontSize:20.0,fontWeight:FontWeight.bold, ),
),
))
],
),
onTap: () => onTaps[index](),
));
});
}
_onAlertButtonPressed1(context) {
Alert(
context: context,
type: AlertType.info,
title: "Coming soon",
desc: "This link will be available in future updates",
).show();
}
我尝试使用 rflutter alert 来显示 alert.Everything 在没有任何 error.But 的情况下工作正常 error.But 点击 destined listview 后没有出现警报..
为什么这段代码不起作用。如果您有任何解决方案,请帮助我..
如果您需要更多请评论 information.By 控制台消息的工作方式 fine.there 控制台框中没有错误消息。
要在 flutter 中显示警告对话框,您必须执行以下操作:
_onAlertButtonPressed1(context) {
AlertDialog alert = AlertDialog(
title: Text("Coming soon"),
content: Text("This link will be available in future updates"),
actions: [
//your actions (I.E. a button)
],
);
// show the dialog
showDialog(
context: context,
builder: (BuildContext context) {
return alert;
},
);
}
您可以查看文档here。
还有一篇文章解释了如何使用 AlertDialog here。
你有这个回调:
functionFive()=>_onAlertButtonPressed;
它调用 __onAlertButtonPressed_,但显示对话框的函数称为 _onAlertButtonPressed1(它在结束)。
UPD:您的回调应该接受上下文并且 functionFive 应该调用 _onAlertButtonPressed1 函数:
functionOne(BuildContext context) {
Navigator.push(
context, new MaterialPageRoute(builder: (context) => RamOne()));
}
functionTwo(BuildContext context) {
Navigator.push(context, MaterialPageRoute(builder: (context) => RamTwo()));
}
functionThree(BuildContext context) {
Navigator.push(
context, MaterialPageRoute(builder: (context) => RamThree()));
}
functionFour(BuildContext context) {
Navigator.push(context, MaterialPageRoute(builder: (context) => RamFour()));
}
functionFive(BuildContext context) => _onAlertButtonPressed1(context);
并将上下文传递给回调:
onTap: () => onTaps[index](context),
我使用下面的代码在用户点击特定列表项时收到提醒
import 'package:flutter/material.dart';
import 'package:rflutter_alert/rflutter_alert.dart';
class RamList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return _myListView(context);
}
}
Widget _myListView(BuildContext context) {
final titles = [
'Part-1',
'part-2',
'part-3',
'part-4',
'part-5',
];
final numbers = [
'1 ',
'2 ',
'3 ',
'4 ',
'5 ',
];
functionOne() {
Navigator.push(
context, new MaterialPageRoute(builder: (context) => RamOne()));
}
functionTwo() {
Navigator.push(context, MaterialPageRoute(builder: (context) => RamTwo()));
}
functionThree() {
Navigator.push(
context, MaterialPageRoute(builder: (context) => RamThree()));
}
functionFour() {
Navigator.push(context, MaterialPageRoute(builder: (context) => RamFour()));
}
functionFive()=>_onAlertButtonPressed1;
final List<Function> onTaps = [
functionOne,
functionTwo,
functionThree,
functionFour,
functionFive,
];
return ListView.builder(
itemCount: titles.length,
itemBuilder: (context, index) {
return Card(
elevation: 50,
child: InkWell(
child: Row(
children: <Widget>[
Container(
height: 100.0,
width:50.0,
decoration: BoxDecoration(
gradient:LinearGradientStyle.linearGradient(
orientation:LinearGradientStyle.ORIENTATION_HORIZONTAL,
gradientType: LinearGradientStyle.GRADIENT_TYPE_AMIN
)
),),
Container(
margin: EdgeInsets.all(10),
child: Text(
numbers[index],
)),
Flexible(child: Container(
margin: EdgeInsets.all(10),
child: GradientText((titles[index]),
gradient:gradient,
style:TextStyle(fontSize:20.0,fontWeight:FontWeight.bold, ),
),
))
],
),
onTap: () => onTaps[index](),
));
});
}
_onAlertButtonPressed1(context) {
Alert(
context: context,
type: AlertType.info,
title: "Coming soon",
desc: "This link will be available in future updates",
).show();
}
我尝试使用 rflutter alert 来显示 alert.Everything 在没有任何 error.But 的情况下工作正常 error.But 点击 destined listview 后没有出现警报.. 为什么这段代码不起作用。如果您有任何解决方案,请帮助我..
如果您需要更多请评论 information.By 控制台消息的工作方式 fine.there 控制台框中没有错误消息。
要在 flutter 中显示警告对话框,您必须执行以下操作:
_onAlertButtonPressed1(context) {
AlertDialog alert = AlertDialog(
title: Text("Coming soon"),
content: Text("This link will be available in future updates"),
actions: [
//your actions (I.E. a button)
],
);
// show the dialog
showDialog(
context: context,
builder: (BuildContext context) {
return alert;
},
);
}
您可以查看文档here。
还有一篇文章解释了如何使用 AlertDialog here。
你有这个回调:
functionFive()=>_onAlertButtonPressed;
它调用 __onAlertButtonPressed_,但显示对话框的函数称为 _onAlertButtonPressed1(它在结束)。
UPD:您的回调应该接受上下文并且 functionFive 应该调用 _onAlertButtonPressed1 函数:
functionOne(BuildContext context) {
Navigator.push(
context, new MaterialPageRoute(builder: (context) => RamOne()));
}
functionTwo(BuildContext context) {
Navigator.push(context, MaterialPageRoute(builder: (context) => RamTwo()));
}
functionThree(BuildContext context) {
Navigator.push(
context, MaterialPageRoute(builder: (context) => RamThree()));
}
functionFour(BuildContext context) {
Navigator.push(context, MaterialPageRoute(builder: (context) => RamFour()));
}
functionFive(BuildContext context) => _onAlertButtonPressed1(context);
并将上下文传递给回调:
onTap: () => onTaps[index](context),