stars-one / PageStatusManager

无缝为Activity、Fragment、任何View设置常用状态显示(加载中,重试,无数据)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PageStatusManager

无缝为Activity、Fragment、任何View设置加载(loading)、重试(retry)和无数据(empty)页面。

基于hongyangAndroid/LoadingAndRetryManager进行Kotlin的相关优化

发布在Jitpack可快速引用

引入

implementation 'com.github.stars-one:PageStatusManager:0.1'

使用

1.初始化对应状态布局

如果多个页面共享加载和重试页面,建议全局设置个基本的。比如在Application中:

public class MyApplication extends Application
{
    @Override
    public void onCreate()
    {
        super.onCreate();
        //设置布局
        LoadingAndRetryManager.BASE_RETRY_LAYOUT_ID = R.layout.base_retry; //重试
        LoadingAndRetryManager.BASE_LOADING_LAYOUT_ID = R.layout.base_loading; //加载中
        LoadingAndRetryManager.BASE_EMPTY_LAYOUT_ID = R.layout.base_empty;//空数据
    }
}

PS: 如果只是单个Activity或Fragment用到,也可以在对应的Activity或Fragment进行布局的设置

2.Activity初始化对象

在Activity中:

class MainActivity : AppCompatActivity() {
    lateinit var mLoadingAndRetryManager: LoadingAndRetryManager

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        mLoadingAndRetryManager = LoadingAndRetryManager.generate(this,object :
            OnLoadingAndRetryListener() {
            override fun setRetryEvent(retryView: View?) {
                //设置重试页面的点击事件
                retryView?.findViewById<Button>(R.id.id_btn_retry)?.setOnClickListener {
                   loadData()
                }
            }
        })

        loadData()
    }

    //模拟加载数据
    fun loadData() {
        thread {
            mLoadingAndRetryManager.showLoading()
            Thread.sleep(2000)
            runOnUiThread {
                mLoadingAndRetryManager.showRetry()
            }
        }
    }
}
  • 在Fragment中与Activity中用法一致。

  • 为任何View添加,只需要将LoadingAndRetryManager.generate()的第一个参数改成对应的View即可。

如果需要针对单个Activity、Fragment、View定制页面,重写接口的回调方法:

public View generateLoadingLayout()
{
   return null;
}

public View generateRetryLayout()
{
   return null;
}

public View generateEmptyLayout()
{
   return null;
}

即可,针对每个页面都有对应的设置事件的回调,如果有需求直接复写。

API

  • mLoadingAndRetryManager.showContent();
  • mLoadingAndRetryManager.showRetry();
  • mLoadingAndRetryManager.showLoading();
  • mLoadingAndRetryManager.showEmpty();

About

无缝为Activity、Fragment、任何View设置常用状态显示(加载中,重试,无数据)


Languages

Language:Java 79.9%Language:Kotlin 20.1%