-
Notifications
You must be signed in to change notification settings - Fork 228
API
chenenyu edited this page Aug 3, 2018
·
14 revisions
路由相关的API可以参考IRouter
.
Router.build(uri)
是路由的入口,一切跳转皆是从此开始:
method | info | return |
---|---|---|
build(Uri uri) |
发起路由操作的起点,内部构建了一个RouteRequest 。 |
IRouter |
callback(RouteCallback callback) |
设置路由结果回调 | IRouter |
requestCode(int requestCode) |
添加了requestCode即表示要调用startActivityForResult ,requestCode >= 0 |
IRouter |
with(Bundle bundle) |
携带Bundle
|
IRouter |
with(PersistableBundle bundle) |
@RequiresApi(21) 携带PersistableBundle
|
IRouter |
with(String key, Object value) |
携带extras | IRouter |
addFlags(int flags) |
Intent#addFlags(int) |
IRouter |
setData(Uri data) |
Intent#setData(Uri) |
IRouter |
setType(String type) |
Intent#setType(String) |
IRouter |
setDataAndType(Uri data, String type) |
Intent#setDataAndType(Uri, String) |
IRouter |
setAction(String action) |
Intent#setAction(String) |
IRouter |
anim(@AnimRes int enterAnim, @AnimRes int exitAnim) |
Activity#overridePendingTransition(int, int) |
IRouter |
activityOptions(ActivityOptionsCompat activityOptions) |
ActivityOptions 添加转场动画 |
IRouter |
skipInterceptors() |
跳过所有拦截器 | IRouter |
skipInterceptors(String... interceptors) |
跳过指定的拦截器 | IRouter |
addInterceptors(String... interceptors) |
为当前的路由请求添加临时的拦截器 | IRouter |
getIntent(Context context) |
获取路由对应的Intent | Intent |
getFragment(Context context) |
获取路由对应的Fragment | Object(android.app.Fragment or android.support.v4.app.Fragment ) |
go(Context context, RouteCallback callback) |
设置路由回调并跳转 | void |
go(Context context) |
跳转 | void |
go(android.support.v4.app.Fragment fragment, RouteCallback callback) |
设置路由回调并跳转。传入的参数是fragment对象,方便在fragment中接收startActivityForResult的回调 | void |
go(android.support.v4.app.Fragment fragment) |
跳转。传入的参数是fragment对象,方便在fragment中接收startActivityForResult的回调 | void |
go(android.app.Fragment fragment, RouteCallback callback) |
设置路由回调并跳转。传入的参数是fragment对象,方便在fragment中接收startActivityForResult的回调 | void |
go(android.app.Fragment fragment) |
跳转。传入的参数是fragment对象,方便在fragment中接收startActivityForResult的回调 | void |
... | ... | ... |
最后调用Router.build(uri).go(context/fragment)
即可完成路由动作。注意,如果是在Activity中调用,最好传入当前的Activity,如果是在Fragment中调用,就传入当前的fragment。
Router相关的API如下:
method | info |
---|---|
handleRouteTable(RouteTable routeTable) |
手动分配路由 |
injectParams(Object obj) |
自动注入参数。obj必须是activity或者fragment对象 |
addGlobalInterceptor(RouteInterceptor routeInterceptor) |
添加全局拦截器 |
registerMatcher(AbsMatcher matcher) |
注册自定义匹配器。属于进阶用法,参考wiki。 |
... | ... |