flutter-fluro

flutter路由

地址

  • 导入方法
dependencies:
 fluro: "^1.3.4"
或
dependencies:
 fluro:
   git: git://github.com/theyakka/fluro.git
  • 使用

    • 初始化
      final router = Router();
    
    • 初始化完成之后需要定义routers和handlers
       var usersHandler = Handler(handlerFunc: (BuildContext                       context, Map<String, dynamic> params) {
         return UsersScreen(params["id"][0]);
     });
     void defineRoutes(Router router) {
         router.define("/users/:id", handler: usersHandler);
      }
    

    同vue一样 "/"这个是默认页面

    • 在MaterialApp.onGenerateRoute 传入router.generator;
    Widget build(BuildContext context) {
    // TODO: implement build
    return new MaterialApp(
     title: "首页",
     theme: new ThemeData(
       textTheme: new TextTheme(
         body1: new TextStyle(fontSize: 14.0,color: Color(0xff333333)),
       )
     ),
     onGenerateRoute: _router.generator,
    );
    }
    

    geterator 是一个函数内部实现:

    Route<dynamic> generator(RouteSettings routeSettings) {
      RouteMatch match =
          matchRoute(null, routeSettings.name, routeSettings: routeSettings);
      return match.route;
    }
    

    所以也可以通过以下方式定义跳转方式

    onGenerateRoute: (RouteSettings routeSettings){
         RouteMatch match = _router.matchRoute(null,routeSettings.name,routeSettings:routeSettings,transitionType: TransitionType.inFromRight);
         return match.route;
       },
    
    • 跳转
      Navigator.of(context).pushNamed("/skills/popupmenu");
    

写下来一想深刻点

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容