我的UI具有这样的结构:
TabBarView(children:[_Fragment1,_Fragment2...])
_Fragment1显示了我的用户的文件,我需要在带有后退堆栈的文件夹之间实现导航。我在_Fragment1中具有listview,并且单击item且item为文件夹时,应显示文件夹的文件(仅更改文件片段)。我试图使它像这样,但是失败了:
onTap: () => (_filesList[index].isFolder)
? Navigator.push(context, MaterialPageRoute(builder: (_) => _FilesListView(_filesList[index].children)))
: null,
有没有像android中的片段一样容易的解决方案?也许有些软件包可以帮助做出这样的事情。
答案 0 :(得分:0)
我在https://stackoverflow.com/a/52247870/10260006和此处Use nested Navigator with WillPopScope in Flutter找到了解决方案,但是我想补充一点,我只需要为此指定root命名的route和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