android - 在Flutter中,针对移动设备的许多路线/页面和自制模板的最佳方法是什么?

标签 android android-studio flutter dart

  • 我开始使用Flutter(Dart)在Android Studio中构建应用程序。一世
    想要在应用程序中插入两本书的摘要,因此其中一本书
    35条路线(或页面),另外35条路线(或页面)。
  • 目前,我的应用程序如下所示:我有一个 Intro_Page ,其中有一个
    路由到 Main_Page 的按钮。在Main_Page中有
    两个按钮:一个用于Bookt的,另一个用于BookB的。输入图书后,用户在输入文字后会找到另一个
    按钮转到下一页, BookA_1 ,在此页面上,另一个按钮
    BookA_2 等。


  • 我的问题是:
  • 是否有任何方法可以使用可在每个页面重复使用的模板?
  • 我必须将所有代码放入main.dart文件中,或者我可以为每个页面制作一个dart文件,并在它们之间进行导航
    纽扣?
  • 是否有任何可能的方法来创建一个自制模板,该模板在所有页面中都使用设计布局,因此我不必重写以下代码
    一人一个?只是布局而不是内容(文本)。
  • 还有其他更好的方法吗?


  • PS:任何其他建议都会有所帮助。

    如果您回答这个问题,非常感谢!

    最佳答案

    您可以创建一个用于路由的通用类,因为您只需减少导航代码即可。

    您可以像这样创建一个类

    import 'package:flutter/material.dart';
    
    class MyNavigator {
      static navigate({BuildContext context, Widget page}) async {
        await Navigator.of(context).push(
          MaterialPageRoute(builder: (_) {
            return page;
          }),
        );
      }
    }
    

    并用作
    MyNavigator.navigate(context: context, page: BookA());
    

    希望对您有帮助。

    ------------------------------------更新------------- --------------------

    您也可以使用扩展方法。

    For this to work, you'll need Dart 2.7 minimum!



    扩展方法的实现如下
    import 'package:flutter/material.dart';
    
    extension NavigatorHelper on Widget {
      goHere(BuildContext context) async {
        await Navigator.of(context).push(
          MaterialPageRoute(builder: (_) => this),
        );
      }
    }
    

    您可以将其用作
    BookA().goHere(context);
    

    我认为扩展方法是个好方法。
    您可以同时使用。

    关于android - 在Flutter中,针对移动设备的许多路线/页面和自制模板的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59576038/

    相关文章:

    dart - 如何在 Flutter 中围绕 FlatButton 复制 OutlineInputBorder

    android - 为调试目的授予无障碍服务权限

    Android 抽屉导航膨胀错误

    android - 尝试使用 Jenkins 和最新的 android 插件 3.0.0-alpha8 构建应用程序时遇到问题

    android - 在 Flutter 中为 DropdownMenu 使用枚举和 ValueNotifier

    database - 如何在 Dart (Flutter) 中获取每个可迭代值的索引号

    java - 在屏幕解锁时启动 Android 应用程序

    android - 即使应用程序被杀死,WhatsApp也喜欢在android中调用通知

    android - 视频捕获时可以使用 opencv android 进行数字和文本检测吗?

    java - 更新 Android Studio 后链接引用资源和重复值失败