GitHub 代码仓fluttercandies/nav_router

nav_router

Flutter 最轻量、最简单且最方便的路由管理!

nav_router 项目封面
星标
103
复刻
15
最近推送(UTC)
2024年6月24日
项目状态
未归档

原始 README

以下为英文项目原文快照,最新内容请访问 GitHub。

Language: English | 中文简体

GitHub stars GitHub forks GitHub issues

nav_router

nav_router is the simplest / lightweight / convenient routing management solution for flutter. It supports various routing animations, and it is very convenient to jump / pass parameters. To jump to a new page, just routePush (NewPage ());

Log

  • 2021.03.25 - Migrating to nullSafety

  • 2020.07.04 - Test Flutter 1.17.3

  • 2020.06.03 - Cancel pop default empty string data

  • 2020.02.28 - Fix pop method of dev branch flutter error.

Getting started

Add dependency
dependencies:
  nav_router: ^1.0.0

Related articles updated ...

Then use flutter packages upgrade to update flutter plugin packages

Sample project

There is a pretty sweet example project in the example folder. Check it out. Otherwise, keep reading to get up and running.

Setting up

  • 1.Import our plugin on the page of MaterialApp
import 'package:nav_router/nav_router.dart';
  • 2.Write navGK value in navigatorKey property of MaterialApp
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: '',
      navigatorKey: navGK,
    );
  }
  • 3.Then, we can start using it, here is an example of a jump page
Widget buildItem(RouteModel item) {
  return new FlatButton(
    onPressed: () => routePush(new NewPage()),
    child: new Text('Click to jump'),
  );
}
  • 4.If we want to use other routing animations to jump, we can add jump properties later, such as: gradient animation
routePush(new NewPage(), RouterType.fade);

Parameter passing

Way 1:

Normally push the new page, but add Then at the back, the v behind is the data brought back by the page after we jump, and then we print it out.

routePush(NewPage()).then((v) {
  print('I received::$v');
});

Then our new page will pop the return value. Add our parameters directly in the pop and then the brackets. It can be any type of parameter value. After that, what we wrote above will receive the parameters we returned this time with the past.

FlatButton(
  onPressed: () {
    pop('This is the parameter');
  },
  child: Text('Return with parameters'),
),

Way 2:

Method two can use our NavData, first add the NavData type parameter to the page we want to push to,

class NewPage extends StatlessWidget {
  final NavData navData;

  NewPage({this.navData});
}

Then the following judges whether the navData is empty, that is, whether the superior has received this method, and if so, returns it with parameters.

FlatButton(
  onPressed: () {
    if(navData == null) return;
    widget.navData('NavData mode parameter transmission');
    pop();
  },
  child: Text('Return with parameters'),
),

Then the place where we push can use navData to receive the value and print it out.

routePush(NewPage(navData: (v) {
    print('I received::$v');
  }),
);

Effect map 图片不能显示点我

1.gif 2.gif 3.gif
4.gif 5.gif 6.gif
7.gif 8.gif 9.gif
10.gif 11.gif 12.gif

Flutter WeChat group

Above can't show my point

FlutterJ:www.flutterj.com

Contributor

LICENSE
fluttercandies/nav_router is licensed under the
Apache License 2.0

A permissive license whose main conditions require preservation of copyright and license notices. 
Contributors provide an express grant of patent rights. 
Licensed works, modifications, and larger works may be distributed under different terms and without source code.
FlutterCandies GitHub avatar
GitHub 作者

FlutterCandies ↗

Custom Flutter candies (packages) for you to build your Flutter app easily. Enjoy it!

语言DartRubyShell

分类

此仓库发布的插件

使用的依赖

依赖清单 2 项

  • flutter{"sdk":"flutter"}
  • flutter_test开发依赖{"sdk":"flutter"}

如何选择适合项目的代码仓?

先按使用场景筛选,再比较项目活跃情况,最后到原始仓库核对使用要求。

  1. 通过仓库名、作者或描述搜索,再按技术分类缩小范围。
  2. 结合星标、复刻与最近推送比较项目;星标反映社区关注,不代表质量保证。
  3. 使用前在 GitHub 核对 README、许可证与 Issues。

来源与维护

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗