Flutter 如何从MaterialPageRoute中的builder对象获取小部件类名
我希望有一个自定义MaterialPagerRoute,其中RouteSettings对象将被指定一个默认名称,该名称应为生成器,即小部件类名 我已经重写了下面的方法,不知道如何从生成器对象中获取类名Flutter 如何从MaterialPageRoute中的builder对象获取小部件类名,flutter,dart,flutter-navigation,Flutter,Dart,Flutter Navigation,我希望有一个自定义MaterialPagerRoute,其中RouteSettings对象将被指定一个默认名称,该名称应为生成器,即小部件类名 我已经重写了下面的方法,不知道如何从生成器对象中获取类名 import 'package:flutter/material.dart'; class CMaterialPageRoute extends MaterialPageRoute { CMaterialPageRoute({@required builder, RouteSettings
import 'package:flutter/material.dart';
class CMaterialPageRoute extends MaterialPageRoute {
CMaterialPageRoute({@required builder, RouteSettings settings, maintainState = true, bool fullscreenDialog = false,})
: assert(builder != null),
assert(maintainState != null),
assert(fullscreenDialog != null),
assert(opaque),
super(settings: settings == null ? new RouteSettings(name: (builder as Widget).toStringShort()):settings,fullscreenDialog: fullscreenDialog);
}
在上面的代码中,我试图从构建器获取小部件,并将短名称设置为RouteSettings名称,但问题是强制转换,获取以下错误表示强制转换不可能
类型“(动态)=>CitySelectionScreen”不是类型转换中类型“Widget”的子类型
我这样做的原因是作为Firebase analytics集成的一部分,我需要更改我的整个导航代码,以添加以前没有的新路由设置,我正在尝试解决这些问题,设置默认名称,而不是在整个项目级别进行的更改
请在这方面帮助我。builder是类型函数,您不能将其强制转换为Widget。我不确定您想要实现什么,但是如果您使用null调用builder,您将能够知道它返回哪个小部件:
final WidgetBuilder=(BuildContext)=>Scaffold();
打印(b(null.toString());
它打印
脚手架