【问题标题】:Segmenting the elements of homepage in multiple >dart files在多个 >dart 文件中分割主页的元素
【发布时间】:2020-12-26 16:43:07
【问题描述】:

作为 Flutter 新手,我想知道将任何页面(如 HOME)的元素分离到不同的类或 DART 文件是否是一种好习惯。

如果答案是肯定的,我需要一些帮助。

我知道我必须将母亲和女儿 .dart 页面中的页面相互包含。 我感到困惑的是我应该为页面的一部分提及多少。 (如果有请原谅我的诞生)

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'AppName',
      home: MyHomePage(),
    );

我应该返回什么? Material App 已经运行了母版或主页,那么要包含多少? 还是我应该只对行、列和卡片等元素进行编码...

如果后者是真的,那么我应该如何称呼它们?执行 MAIN .dart 时会自动调用它们吗?

~加法~

我可以无中生有地返回任何布局小部件(行/列/卡片)吗?

喜欢

class MyHomePage extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return Row(
        children: <Widget>[

(我认为这是合乎逻辑的,因为所有查询最终都会转发到 MAIN.dart)

感谢任何帮助。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    如果我正确理解你的问题,让我用一个例子来回答:

    说你的 main.dart 如下:

    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'AppName',
          home: MyHomePage(),
        );
      }
    }
    

    而你的 home_page.dart 是:

    class MyHomePage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text("AppName"),
          ),
          body: Row(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: [
              CustomWidget1(),
              CustomWidget2(),
            ],
          ),
        );
      }
    }
    

    那么 CustomWidget1 可以是(在一个名为 custom_widget_1.dart 的文件中):

    class CustomWidget1 extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Center(
          child: Text("CustomWidget1"),
        );
      }
    }
    

    那么CustomWidget2可以是(在一个名为custom_widget_2.dart的文件中):

    class CustomWidget2 extends StatefulWidget {
      CustomWidget2({Key key}) : super(key: key);
    
      @override
      _CustomWidget2State createState() => _CustomWidget2State();
    }
    
    class _CustomWidget2State extends State<CustomWidget2> {
      @override
      Widget build(BuildContext context) {
        return Center(
          child: Text("CustomWidget2"),
        );
      }
    }
    

    【讨论】:

    • 嗨,Kylo,是的,你说得对。我在考虑复杂的逻辑,在发布这个问题后不久,我意识到我把事情复杂化了,而且我没有正确地声明事情。因此,在研究了一段时间后,我发现了许多地方的错误,也与我的概念有关。所以我发现很容易我必须在它自己的 dart 文件中创建“自定义小部件”的类,并且在 MAIN 中包含 IDE 会自动将该 dart 文件识别为它自己的 CLASS,并且还将导入相关的文件。谢谢你的努力,我真的很感激。
    【解决方案2】:

    是的,您可以创建许多目录并在其中安排您的 Dart 文件,例如服务、模型和配置。当您调用 main.dart 时,其他类肯定不会在 main.dart 上,让我这样说,maon.dart = >homepage.dart => productPage.dart=>.......

    只是导航,导航到一些参数类,一定要解析参数

    【讨论】:

    • 嗨,Sam,如果我的话不清楚,我很抱歉,但我要求的是页面的元素而不是多个页面,例如主页中的列行、卡片和堆栈。
    猜你喜欢
    • 2017-02-09
    • 2022-01-12
    • 1970-01-01
    • 2020-01-18
    • 2013-07-16
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 2018-03-08
    相关资源
    最近更新 更多