欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flutter路由框架Fluro使用簡介

 更新時間:2020年01月17日 11:42:47   作者:xiangzhihong  
這篇文章主要介紹了Flutter路由框架Fluro使用簡介,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在Flutter應用開發(fā)過程中,除了使用Flutter官方提供的路由外,還可以使用一些第三方路由框架來實現(xiàn)頁面管理和導航,如Fluro、Frouter等。

Fluro作為一款優(yōu)秀的Flutter企業(yè)級路由框架,F(xiàn)luro的使用比官方提供的路由框架要復雜一些,但是卻非常適合中大型項目。因為它具有層次分明、條理化、方便擴展和便于整體管理路由等優(yōu)點。

使用Fluro之前需要先在pubspec.yaml文件中添加Fluro依賴,如下所示。

dependencies:
 fluro: "^1.5.1"

如果無法使用上面的方式添加Fluro依賴,還可以使用git的方式添加Fluro依賴,如下所示。

dependencies:
 fluro:
  git: git://github.com/theyakka/fluro.git

成功添加Fluro庫依賴后,就可以使用Fluro進行應用的路由管理與導航開發(fā)了。為了方便對路由進行統(tǒng)一的管理,首先需要新建一個路由映射文件,用來對每個路由進行管理。如下所示,是路由配置文件route_handles.dart的示例代碼。

import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:flutter_demo/page_a.dart';
import 'package:flutter_demo/page_b.dart';
import 'package:flutter_demo/page_empty.dart';

//空頁面
var emptyHandler = new Handler(
  handlerFunc: (BuildContext context, Map<String, List<String>> params) {
   return PageEmpty();
  });

//A頁面
var aHandler = new Handler(
  handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
   return PageA();
  });

//B頁面
var bHandler = new Handler(
  handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
   return PageB();
  });

完成基本的路由配置后,還需要一個靜態(tài)的路由總體配置文件,方便我們在路由頁面中使用。如下所示,是路由總體配置文件routes.dart的示例代碼。

import 'package:fluro/fluro.dart';
import 'package:flutter_demo/route_handles.dart';

class Routes {
 static String page_a = "/";          //需要注意
 static String page_b = "/b";

 static void configureRoutes(Router router) {
  router.define(page_a, handler: aHandler);
  router.define(page_b, handler: bHandler);
  router.notFoundHandler =emptyHandler;   //空頁面
 }
}

在進行路由的總體配置時,還需要處理不存在的路徑情況,即使用空頁面或者默認頁面進行代替。同時,需要注意的是應用的首頁一定要用“/”進行配置。
為了方便使用,還需要把Router進行靜態(tài)化,這樣在任何一個頁面都可以直接調(diào)用它。如下所示,是application.dart文件的示例代碼。

import 'package:fluro/fluro.dart';

class Application{
 static Router router;
}

完成上述操作后,就可以在main.dart文件中引入路由配置文件和靜態(tài)化文件了,如下所示。

import 'package:fluro/fluro.dart';
import 'package:flutter_demo/routes.dart';

import 'application.dart';

void main() {
 Router router = Router();
 Routes.configureRoutes(router);
 Application.router = router;

 runApp(MyApp());
}

class MyApp extends StatelessWidget {
 @override
 Widget build(BuildContext context) {
  return MaterialApp(
   title: 'Demo App',
   onGenerateRoute: Application.router.generator,
  );
 }
}

如果要在跳轉(zhuǎn)到某個頁面,只需要使用Application.router.navigateTo()方法即可,如下所示。

Application.router.navigateTo(context,"/b"); //b為配置路由

運行上面的示例代碼,效果如下圖所示。

可以發(fā)現(xiàn),F(xiàn)luro雖然使用上相比Flutter的Navigator要繁瑣,但是對于中大型項目卻非常適合,它的分層架構(gòu)也非常方便項目后期的升級和維護,使用時可以根據(jù)實際情況進行合理的選擇。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論