【问题标题】:Calling a void function in main.dart from another dart file从另一个 dart 文件调用 main.dart 中的 void 函数
【发布时间】:2021-04-12 07:20:45
【问题描述】:

提前谢谢....

我有一个使用 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?

【问题讨论】:

  • 你能给我们看一个代码示例吗?
  • 感谢沼泽摆动
  • 您有任何错误吗?我觉得你应该没问题。只需将 main.dart 导入到 RaisedButton 所在的任何文件中
  • 嗨何塞·乔治,谢谢。但是,是的,错误是存在的。我已经导入 main.dart 但它仍然说 buildBottomSheet 没有为 MyApp 类型定义

标签: function flutter call void


【解决方案1】:

非常感谢,但现在问题已解决。我从头开始,现在没有像@Muhammad Tameem Rafay 建议的那样从 main.dart 文件调用函数。不过还是谢谢你

【讨论】:

    【解决方案2】:

    是的,可以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'),
            ),
          ),
        );
      }
    }
    

    【讨论】:

    • 感谢您的回答和您的时间,但是,我导入了 main.dart 并按照您的建议调用:MyApp.buildBottomSheet() 但它仍然说没有为 MyApp 类型定义 buildBottomSheet。
    • 请分享您的 main.dart 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 2014-11-13
    • 2022-10-04
    • 1970-01-01
    • 2020-09-23
    • 2020-03-21
    相关资源
    最近更新 更多