如何在Flutter中同时实现device_preview和auto_route软件包

时间:2020-04-12 12:04:31

标签: flutter

我想同时使用device_previewauto_route。为此,我需要将相应的代码添加到MaterialApp的builder属性中。但是,由于MaterialApp小部件中只有一个构建器属性,因此我只能使用其中一个软件包。我该怎么办才能同时使用两者?

2 个答案:

答案 0 :(得分:1)

Material App中的builder属性将为您提供上下文和本机导航器,以防您要将其与某些主题数据或其他内容包装在一起,因此不要传递本机导航器,而应通过ExtendedNavigator。

MaterialApp(
      builder: (context, nativeNavigator) => DevicePreview.appBuilder(
        context,
        ExtendedNavigator(router: Router()),
      ),

答案 1 :(得分:0)

如果有人在auto_route或更高版本中使用0.6.2,则您可能正在努力解决该问题,因为上述答案不再起作用,因为auto_route现在正在使用ExtendedNavigator.builder 。这是解决问题的方法:

MaterialApp(
  locale: DevicePreview.of(context).locale,
  builder: (context, nativeNavigator) => DevicePreview.appBuilder(
    context,
    ExtendedNavigator.builder<Router>(
      router: Router(),
    )(context, nativeNavigator),
  ),
);