Android 加载动画框架,一行代码,任意地方可用,自动解绑
使用
project中添加maven路径
maven { url 'https://jitpack.io' }
依赖activity生命周期管理
implementation 'com.github.WGHCWC:activitylifecycle:1.1.0'
依赖加载框架
implementation 'com.github.WGHCWC:everyshow:1.1.4'
使用,在application中初始化Activity生命周期管理框架,设置自定义加载动画样式,也可使用默认样式
public void onCreate() {
super.onCreate();
ActivityLifecycle.init(this);
LoadingHelper.setStyle(new MyLoadingStyle());
}
在app中使用
LoadingHelper.showWith("加载中..");
LoadingHelper.show();
加载动画及加载图片可自定义,实现LoadingStyle
接口或者继承BaseLoadingStyle
都行,只要记得调用LoadingHelper.setStyle()
,可以设置是否可以点击取消加载,监听加载取消,遮罩背景,遮罩后是否可点击等…
1.Activity管理
借助application 中的registerActivityLifecycleCallbacks
可用方便的对Activity中的生命周进行管理,借此创建一个Activity堆栈管理
2.LoadingHelper
LoadingHelper 内部维护一个ActivityChangeListener
,当Activity状态发生改变时自动销毁Activity对应的加载动画,避免内存泄露
class LoadWrapper constructor(activity: Activity, style: LoadingStyle) : ActivityChangeListener {
val loadingParent: LoadingController
/**
* 不能在此移除监听,会导致迭代异常
*/
override fun onActivityDestroy(activity: Activity) {
wrapperMap.remove(activity)
}
override fun onActivitySateChange(activity: Activity, state: ActivityState) {}
init {
ActivityLifecycle.add(activity, this)
loadingParent = LoadingController(activity, style)
}
所有的loading状态操作都是通过LoadWrapper中的LoadingController实现
…