来自另一个类的颤振调用RFlutter警报
我使用颤振警报包rflutter_alert 1.1.0,在同一页面上编写相同的代码是否合适。然而,由于许多函数,我的代码在1页上太长了 因此,我尝试将警报函数拆分为另一个dart文件,但得到的错误是来自另一个类的颤振调用RFlutter警报,flutter,Flutter,我使用颤振警报包rflutter_alert 1.1.0,在同一页面上编写相同的代码是否合适。然而,由于许多函数,我的代码在1页上太长了 因此,我尝试将警报函数拆分为另一个dart文件,但得到的错误是 A value of type 'Future<bool>' can't be returned from method 'build' because it has a return type of 'Widget'.dart(return_of_invalid_type) 无法
A value of type 'Future<bool>' can't be returned from method 'build' because it has a return type of 'Widget'.dart(return_of_invalid_type)
无法从方法“build”返回类型为“Future”的值,因为它的返回类型为“Widget”。dart(返回类型为无效类型)
如果我这样写
对话省道
import 'package:flutter/material.dart';
import 'package:rflutter_alert/rflutter_alert.dart';
class Dialog extends StatefulWidget {
@override
_DialogState createState() => _DialogState();
}
class _DialogState extends State<Dialog> {
@override
Widget build(BuildContext context) {
return Alert(
context: context,
type: AlertType.error,
title: "RFLUTTER ALERT",
desc: "Flutter testing Testing testing.",
buttons: [
DialogButton(
child: Text(
"COOL",
style: TextStyle(color: Colors.white, fontSize: 20),
),
onPressed: () => Navigator.pop(context),
width: 120,
)
],
).show();
}
}
导入“包装:颤振/材料.省道”;
导入“package:rflutter_alert/rflutter_alert.dart”;
类对话框扩展了StatefulWidget{
@凌驾
_DialogState createState()=>\u DialogState();
}
类_DialogState扩展状态{
@凌驾
小部件构建(构建上下文){
返回警报(
上下文:上下文,
类型:AlertType.error,
标题:“RFLUTTER警报”,
描述:“颤振试验”,
按钮:[
对话框按钮(
子:文本(
“酷”,
样式:TextStyle(颜色:Colors.white,字体大小:20),
),
onPressed:()=>Navigator.pop(上下文),
宽度:120,
)
],
).show();
}
}
当按下按钮时,拆分rFlutter警报代码并调用它的正确方法是什么?
build
需要一个小部件no-antalert
,以便调用警报,但内部的代码单击callback(例如按钮)
感谢这项工作,如何使此警报内的下拉按钮更新选择?似乎警报内的状态没有更新,需要关闭并再次打开警报以更新状态最好现在就打开此问题,但作为提示,您必须使用
content
param并将StatefulWidget
传递给它,然后您可以操作其中的数据。
@override
Widget build(BuildContext context) {
return Container(
child: FlatButton(onPressed: (){
Alert(
context: context,
type: AlertType.error,
title: "RFLUTTER ALERT",
desc: "Flutter testing Testing testing.",
buttons: [
DialogButton(
child: Text(
"COOL",
style: TextStyle(color: Colors.white, fontSize: 20),
),
onPressed: () => Navigator.pop(context),
width: 120,
)
],
).show();
}, child: Text("CLICK ME!!")),
);
}