问题描述
提前致谢....
我有一个用 Flutter 构建的应用程序,其中 main.dart 文件有一个 void 函数。我有另一个带有凸起按钮的 dart 文件,我想从 main.dart 文件中调用 void 函数
这可能吗??
//This is the void in the main.dart file
void buildBottomSheet(double height,MedicineModel model) async {
var medicineId = await showModalBottomSheet(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(45),topRight: Radius.circular(45))),context: context,isScrollControlled: true,builder: (context) {
return FadeAnimation(
.6,AddMedicine(height,model.getDatabase(),model.notificationmanager),);
});
if (medicineId != null) {
Fluttertoast.showToast(
msg: "Reminder Added!",toastLength: Toast.LENGTH_SHORT,gravity: ToastGravity.BottOM_LEFT,timeInSecForIosWeb: 1,backgroundColor: Theme
.of(context)
.accentColor,textColor: Colors.white,fontSize: 20.0);
setState(() {});
}
} //and then a raised button in a different .dart file to call this void?
解决方法
是的,可以call like MyApp.buildBottomSheet(); where MyApp is the class name.
但是从 main.dart 文件中调用函数不是一个好习惯
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
void buildBottomSheet(double height,MedicineModel model) async {
//custom function
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',home: Scaffold(
appBar: AppBar(
title: Text('Welcome to Flutter'),),body: Center(
child: Text('Hello World'),);
}
}
,
非常感谢,但现在问题解决了。我从头开始,现在没有像@Muhammad Tameem Rafay 建议的那样从 main.dart 文件调用函数。不过还是谢谢你