【问题标题】:How to navigate from one widget to another like fragments in android(flutter)?如何从一个小部件导航到另一个像 android(flutter) 中的片段?
【发布时间】:2020-09-08 09:00:54
【问题描述】:

我的 UI 有这样的结构:

TabBarView(children:[_Fragment1,_Fragment2...])

_Fragment1 显示我的用户的文件,我需要使用 backstack 实现文件夹之间的导航。我的 _Fragment1 中有列表视图,当单击项目并且项目是文件夹时,应显示文件夹的文件(仅更改文件片段)。我尝试过这样,但失败了:

onTap: () => (_filesList[index].isFolder)
              ? Navigator.push(context, MaterialPageRoute(builder: (_) => _FilesListView(_filesList[index].children)))
              : null,

有没有像android中的fragments一样简单的解决方案?也许有一些包可以帮助制作这样的东西。

【问题讨论】:

    标签: flutter android-fragments flutter-navigation


    【解决方案1】:

    我在 https://stackoverflow.com/a/52247870/10260006Use nested Navigator with WillPopScope in Flutter 找到了解决方案,但我想补充的是,我只需要像这样指定根命名路由和 ongenerateroute

    WillPopScope(
                onWillPop: () async {
                  navigatorKey.currentState.maybePop();
                  return false;
                },
                child: Navigator(
                  key: navigatorKey,
                  initialRoute: '/',
                  onGenerateRoute: (settings) {
                    return (settings.name == '/')
                        ? MaterialPageRoute(
                            builder: (context) => _FilesListView(filesList.where((file) => file.isShared == false).toList()),
                            settings: settings)
                        : null;
                  },
                ),
              ),
    

    你还可以只使用 Navigator.of(context).push

    【讨论】:

      猜你喜欢
      • 2013-12-19
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2019-08-20
      相关资源
      最近更新 更多