Skip to content

Files

Latest commit

6c272e1 · Dec 19, 2018

History

History
151 lines (128 loc) · 9.82 KB

Method description.md

File metadata and controls

151 lines (128 loc) · 9.82 KB

目录

接口方法说明

IBaseVP

  view和presenter共有方法,为了兼容mvp和mvc开发,此接口包含部分需要两边同时可以 控制界面加载的部分配置方法

方法名 说明
boolean enableToolBar () 是否使用导航,只有presenter和view都返回true才会启用,默认是使用导航
int getLayoutId () 布局id,会通过presenter的isMVP()方法判断调用view还是presenter的此方法
int getToolBarId () 导航栏toolBarId,调用规则同上
boolean enableDataBinding () 是否使用dataBinding进行布局绑定,只有view或presenter其中一个返回true就会启用,默认是不使用
boolean isAddParentLayout () 是否为当前内容布局自动添加一个父布局,只有presenter和view都返回true才会启用,默认是添加
boolean enableDataBinding () 是否启用dataBinding,默认是关闭的
boolean enableUseLoadingLayout () 是否启用空布局,默认是开启的

备注:需要view和presenter共同控制的配置中,凡是默认开启的,只要其中一方返回false就会关闭,凡是默认关闭的,只要其中一个返回true就会开启,具体配置逻辑可以参见LayoutConfig类

IBaseView

  BaseView基础接口,提供一些简单方法供外接调用

方法名 说明
void initView (IBasePresenter presenter) 初始化控件,子类复写此方法时必须调用super方法,请不要在此方法内做耗时操作
View createUI (IBasePresenter presenter) 创建视图UI,调用此方法会返回根视图,通常此方法由框架内部调用,使用者无需调用
View exposeRootView () 获取当前界面根布局
T findView (int id) 通过id获取控件,直接调用此方法找控件可以免去强转和对mRootView的调用
D getDataBinding () 获取界面dataBinding
BaseToolBarModule getToolBarModule () 获取当导航模块,用以修改导航属性
BaseToolBarModule createToolBarModule (IBaseView view, IBasePresenter presenter, int layoutId) 创建导航模块,此方法由BaseViewHelper类调用,需要修改默认的导航模块类时可以复写此方法
void showToastMsg (Context context, String msg, int code) (废弃方法,请使用toast方法替代)显示toast消息,code为消息分级
void showToastMsg (Context context, String msg, int code, int time) (废弃方法,请使用toast方法替代)上面方法的重载方法,可以自定义显示时间长度
void toast ( String msg, int code) 显示toast消息,code为消息分级
void toast ( String msg, int code, int time) 上面方法的重载方法,可以自定义显示时间长度
void showLoading () 显示界面加载,由子类实现,具体实现根据自己需求来定
void dismissLoading () 隐藏界面加载
void showNullView (@NullLayoutModule.Code int code) 显示空布局
void dismissNullView (@NullLayoutModule.Code int code) 隐藏空布局
Map<Integer,View> nullLayoutSetting (Context context) 空布局配置

IBasePresenter

  BaseActivityPresenter和BaseFragmentPresenter的基础接口

方法名 说明
void exit() 退出当前activity,建议退出界面时统一使用此方法,而不是finish()方法,以便进行某些退出时的统一处理
Context exposeContext () 获取context
BaseActivityPresenter exposeActivity () 获取当前activity
IBaseView exposeView () 获取当前视图BaseView
IBaseModel exposeModel () 获取当前BaseModel
boolean isMVP () 当前界面是否使用mvp进行开发,默认是true,关闭mvp模式时,可以不用传递presenter上的两个泛型和presenter中两个回传类类型的方法

IBaseModel

  BaseModel基础接口

方法名 说明
T fromJson (String json, Class classOfT) 解析json
String toJson (Object src) 生成json
void initModel(IBasePresenter presenter) model初始化方法,空实现

备注:BaseModel中封装的方法非常少,所有网络请求和数据库操作都建议开发者自行封装以满足自身需求,这里只是规定一个结构类型

LifeCycleCallback

  生命周期回调接口,对应几个生命周期,不过多说明


主要类方法说明

  对于实现的相应的接口的方法不再进行描述

BaseModel

  Model基类

方法名 说明
BaseModelHelper getModelHelper () 获取当前类helper
void setModelHelper (BaseModelHelper modelHelper) 修改当前默认的helper类

BaseView

  View基类

方法名 说明
BaseViewHelper getViewHelper () 获取当前类helper
BaseViewHelper setViewHelper (IBasePresenter presenter) 修改当前默认的helper类

BaseActivityPresenter

  ActivityPresenter基类

方法名 说明
abstract void initPresenter (Bundle savedInstanceState) Activity逻辑初始化抽象方法,通常需要最终子类实现此方法
abstract void autoCreateView () 关闭mvp进行开发时,此方法会被调用,用来创建model和view实例,因此需要自己的抽象基类实现此方法,参考demo中的CommonActivityPresenter类中用法
abstract void autoCreateModel () 关闭mvp进行开发时,此方法会被调用,用来创建model和view实例,因此需要自己的抽象基类实现此方法,参考demo中的CommonActivityPresenter类中用法
void continueLoading (final Bundle savedInstanceState) 私有化方法,此方法中会调用initPresenter方法
void createView () 实例化view,会根据是否开启mvp,来判断使用反射创建还是调用autoCreateView进行创建
void createModel () 实例化model,会根据是否开启mvp,来判断使用反射创建还是调用autoCreateModel进行创建
void setmLifeCycleCallback (LifeCycleCallback mLifeCycleCallback) 设置生命周期回调,此回调可以获取activity中所有生命周期回调
BasePresenterHelper getPresenterHelper () 获取当前类helper
void setPresenterHelper (BasePresenterHelper presenterHelper) 设置当前类helper
void firstLoading (Bundle savedInstanceState) 初始加载方法空实现,此方法会位于super.onCreate前被调用,可以用来满足某些特殊功能
String[] needPermissions () 页面需要申请的权限数组(静态申请(初始化时申请))
boolean requestPermissions (String[] permissions) 页面需要申请的权限数组(动态申请(事件触发申请)),返回值为true时表示当前已经获取了权限
void permissionsComplete (String[] permissions) 权限申请成功,复写此方法实现自己的业务逻辑
void permissionsRefuse (String[] permissions) 申请的权限被拒绝,复写此方法实现自己的逻辑(默认为弹窗提示)
void createLayout () 创建视图
Class<? extends V> getViewClassType () 子类可以复写此方法返回view的类类型
Class<? extends M> getModelClassType () 子类可以复写此方法返回model的类类型
String getViewClassPackageName () 子类返回view类所在包名
String getModelClassPackageName () 子类返回model类所在包名
String classNameToCreateView (String viewClassPackageName, String simpleName) 通过view类包名和当前类类名生成view的全限定名
String classNameToCreateModel (String viewClassPackageName, String simpleName) 通过model类包名和当前类类名生成model的全限定名

备注:最后6个方法为反射创建view和model实例所需要的方法,具体用法参见部分功能说明3.Presenter反射创建说明

BaseFragmentPresenter

  FragmentPresenter基类,此类方法和BaseActivityPresenter中基本相同,这里只列举不同的方法

方法名 说明
View createLayout (LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) 创建视图方法,与BaseActivityPresenter的参数列表稍有不同
void onSupportInvisible () fragment不可见时,会回调此方法
void onSupportVisible () fragment可见时会回调此方法
void onLazyInitView () 懒加载方法,需要懒加载的代码可以写在此方法中

具体fragment管理方法,参考库Fragmentation


其他部分类说明

BaseMvpHelper

  model,view,presenter的helper类的基类

方法名 说明
void addHelper (T helper) 为当前helper类扩展一个helper类到自己内部,并规定他的类型号
T getHelper (Class cls) 获取当前helper类中的某一个类型的扩展类对象
void removeHelper (Class cls) 去除当前helper类中某一个类型的扩展类
void clearHelpers () 清空当前所有的扩展helper类