一行代码实现加载动画,自动绑定解绑activity生命周期

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实现

项目地址tag 1.1.3为java 版本,1.1.4为kotlin版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值