AutoRoute代码生成器会在生成的代码中创建_$$AppRouter类,因为这是一个简单的、有效的方法来避免命名冲突和覆盖已经存在的类。_$$AppRouter类是一个自动生成的类,它集成了一个AppRouter类,并包含所有必要的路由信息和方法。您可以使用它来实现您的应用程序中的导航功能。
以下是一个包含AutoRoute代码生成器生成的_$$AppRouter类的示例:
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
@MaterialAutoRouter(
replaceInRouteName: 'Page,Route',
routes: [
AutoRoute(page: HomePage, initial: true),
AutoRoute(page: SettingsPage),
],
)
class _$$AppRouter extends _$AppRouter {
_$$AppRouter() : super();
@override
Widget createPage(
BuildContext context,
String routeName,
Map params,
) {
switch (routeName) {
case Routes.homePage:
return HomePage();
case Routes.settingsPage:
return SettingsPage();
default:
return UnknownRoutePage();
}
}
}
在这个示例中,我们使用@MaterialAutoRouter注释来标记路由信息,并将其附加到_$$AppRouter类上。 $$AppRouter类继承了$AppRouter类,它包含了所有必要的导航方法。我们覆盖了createPage方法来创建我们应用程序的页面。
总结来说,使用_$$AppRouter类可以方便地实现应用程序的导航功能,并避免了可能的命名冲突和重复类的问题。