我正在尝试理解Navigator2.0pages API,它允许通过Navigator.pages属性修改导航栈。 我准备了一个简单的演示,我尝试通过更新提供的页面列表来从后台堆栈中删除页面。 Here is the DartPad demo ? 然而,当简单地从Navigator.pages中删除CustomPage时,就会出现动画故障。在一瞬间,你可以看到页面在当前页面下的动画效果。 它是Flutter框架中的一个bug,还是有更好的方法从后台栈中删除页面?
如何检查我的导航堆栈中是否有名为workout的路线?每当我调用popUntil并且路由不在我的堆栈中时,我就会得到:
════════ Exception caught by widgets library ═══════════════════════════════════
The following assertion was thrown building Navigator-[GlobalObjectKey<NavigatorState> _WidgetsAppState#9d229](dirty, state: NavigatorState#86712(tickers
假设在Flutter中,我在下面有一个页面屏幕堆栈。屏幕显示的是页面D,即最上面的页面。 Page D
Page C
Page B
Page A 如果我在D页上构建( Navigator.of(context).popUntil((route) => route.isFirst); ()方法的第一行),它将只弹出C页和B页。 我怎么也弹出页面A呢?
我有这个ViewModel和一个提供程序:
final signInViewModelProvider = Provider.autoDispose<SignInViewModel>((ref) {
final vm = SignInViewModel();
ref.onDispose(() {
vm.cleanUp();
});
return vm;
});
class SignInViewModel extends VpViewModelNew {
FormGroup get form => _form;
String get ema
Navigator.dart中有两个函数: removeRoute和removeRouteBelow。我不知道如何使用这两种方法。这是页面路由:/ -> A -> B -> C -> D。我在页面D中执行以下代码:
Navigator.removeRoute(context,builder(MaterialPageRoute:(context) => PushPageB();但是出了点问题:
══╡ EXCEPTION CAUGHT BY GESTURE ╞═════════════════════════════════
The following assert
在不包括Navigator的上下文中请求导航器操作
完整代码在这里
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
drawer: new Drawer(child: new ListView(
children: <Widget>[
new Drawe
我试着用路径从一个屏幕导航到另一个屏幕。当我按下按钮让页面移动到路由时,只要我得到错误
I/flutter ( 8790): Another exception was thrown: There are multiple heroes that share the same tag within a subtree.
下面是代码:
路线:
<String, WidgetBuilder>{
'/first':(BuildContext context) =>NavigatorOne() ,
'/second':(BuildCo