从另一个 dart 文件调用 main.dart 中的 void 函数

问题描述

提前致谢....

我有一个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 文件调用函数。不过还是谢谢你