Android 最简单、灵活的路由框架

网友投稿 571 2022-10-23

Android 最简单、灵活的路由框架

Android 最简单、灵活的路由框架

Router

中文wiki. 方便的话给个star! ❤️

Getting started

Add router gradle plugin to your project-level build.gradle, as shown below.

buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:+' classpath "com.chenenyu.router:gradle-plugin:版本号" }}

Apply router plugin in your module-level 'build.gradle'.

apply plugin: 'com.android.application' // apply plugin: 'com.android.library'apply plugin: 'com.chenenyu.router'

注意: 在rootProject的build.gradle文件中, 可以指定插件引用的library版本.

ext { routerVersion = 'x.y.z' compilerVersion = 'x.y.z' compilerLoggable = true/false // 打开/关闭编译期log}

基本用法

添加-(可选)

@Interceptor("SampleInterceptor")public class SampleInterceptor implements RouteInterceptor { @Override public RouteResponse intercept(Chain chain) { // do something return chain.process(); }}

添加注解

// 给Activity添加注解,指定了路径和-(可选)@Route(value = "test", interceptors = "SampleInterceptor")public class TestActivity extends AppCompatActivity { @InjectParam(key="foo") // 参数映射 String foo; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Router.injectParams(this); // 自动从bundle中获取并注入参数 ... }}// 给Fragment添加注解@Route("test")public class TestFragment extends Fragment { ...}

跳转

// 简单跳转Router.build("test").go(this);// startActivityForResultRouter.build("test").requestCode(0).go(this);// 携带bundle参数Router.build("test").with("key", Object).go(this);// 添加回调Router.build("test").go(this, new RouteCallback() { @Override public void callback(RouteStatus status, Uri uri, String message) { // do something }});// 获取路由对应的intentRouter.build("test").getIntent();// 获取注解的FragmentRouter.build("test").getFragment();

进阶用法

建议浏览 wiki.

讨论

QQ group: 271849001

Donate ❤️

Click here.

License

Apache 2.0

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:母函数大模版
下一篇:hdu 1496 Equations (hash)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~