我正在开发的应用程序尝试尽可能地为 Android 和 iOS 用户采用最原生的体验。
为此,应用程序运行 aCupertinoApp
和 a MaterialApp
。
在 iOS 上,我使用CupertinoScaffold
显示 a CupertinoTabBar
with BottomNavigationBarItems
。它按预期表现得非常好:
- 页面只创建一次,第一次单击选项卡时;
- 返回到先前显示的选项卡时页面会恢复:在我的一个选项卡中,有一个列表,并且它的滚动位置始终保持不变。
在 Android 上,情况有所不同:我正在使用Drawer
小部件。当我点击一个条目时,我会调用Navigator#push
以显示相关页面。但是,这将继续在堆栈中添加每个条目页面的新实例。
我似乎无法返回到现有页面。至少,我不能用 iOS 来做到这一点。
看着Navigator
我看到似乎可以实现我正在寻找的功能:
popUntil
=> 将显示我现有的屏幕,但在所有其他屏幕的范围内,因此会为了一页而做出牺牲。这么多事都白费...pushReplacement
=> 将显示目标页面的新实例并销毁当前页面。不可取。
我错过了什么?我怎样才能实现CupertinoTabBar
似乎能够做到的?