gpt4 book ai didi

flutter - 如何在Flutter中设置WidgetsApp的属性pageRouteBuilder

转载 作者:行者123 更新时间:2023-12-03 03:51:09 24 4
gpt4 key购买 nike

我正在尝试了解Flutter中的导航如何在Material Design便捷小部件之外的基本级别上工作,以实现非标准导航方案。
我一直在使用答案here中的代码,并从该代码中编辑生成方法如下,将routespageRouteBuilder属性设置为非null。

@override
Widget build(BuildContext context) {
return new WidgetsApp(
onGenerateRoute: generate,
pageRouteBuilder: (RouteSettings settings, WidgetBuilder builder) {
return MaterialPageRoute(builder: (context) => Container(color: Colors.blue,));
},
onUnknownRoute: unKnownRoute,
textStyle: const TextStyle(),
initialRoute: "/",
routes: <String, WidgetBuilder> {
'/test': (BuildContext context) => Container(
child: Text('test'),
color: Colors.green,
),
},
color: Colors.red);
}
这引发错误

Error: The argument type 'MaterialPageRouteFunction(RouteSettings, Widget Function(BuildContext))' can't beassigned to the parameter type 'PageRouteFunction(RouteSettings, Widget Function(BuildContext))'


(我最初使用PageRoute小部件代替MaterialPageRoute小部件,但随后收到错误消息,即无法实例化抽象类,因此为方便起见切换到MaterialPageRoute,*认为这将是PageRoute的实现。
*而不是为此玩具示例编写新的PageRoute实现。)
据我所知,参数和参数类型是等效的,因此我无法弄清楚该如何解决,而且我找不到任何有关如何在线设置 pageRouteBuilder属性的示例。对于为什么会出现此错误或对此玩具示例进行修复的解释将不胜感激。

最佳答案

遍历material/app.dart以查找pageRouteBuilder的设置方式后(如果使用Android Studio,则在任意位置编写MaterialApp(),悬停并按住Ctrl + click,出现下划线,然后在打开的文件中搜索“pageRouteBuilder”),我发现这可以用解决

 @override
Widget build(BuildContext context) {
final MaterialPageRoute test = MaterialPageRoute<int>(builder: (context) {
return Container();
});

return new WidgetsApp(
onGenerateRoute: generate,
pageRouteBuilder: <T>(RouteSettings settings, WidgetBuilder builder) {
return MaterialPageRoute(builder: builder, settings: settings);
},
onUnknownRoute: unKnownRoute,
textStyle: const TextStyle(),
initialRoute: "/",
routes: <String, WidgetBuilder>{
'/test': (BuildContext context) => Container(
child: Text('test'),
color: Colors.green,
),
},
color: Colors.red);
}
如果我以后知道为什么 <T>在这种情况下有意义,那么我将对此进行编辑并在这里进行解释。

关于flutter - 如何在Flutter中设置WidgetsApp的属性pageRouteBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63406974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com