跳转至

自动加载框

Net支持发起请求开始时显示加载框, 请求结束时隐藏加载框(无论成败)

自动显示

scopeDialog {
    tv.text = Post<String>(Api.PATH) {
        param("username", "用户名") // 请求参数
        param("pwd", "123456")
    }.await()
}


默认是原生加载框(MaterialDesign Dialog), 可自定义

单例自定义

指定当前请求加载框

val dialog = BubbleDialog(requireActivity(), "加载中")

scopeDialog(dialog) {
    tv.text = Post<String>(Api.PATH) {
        param("username", "用户名")
        param("pwd", "123456")
    }.await()
}

菊花加载对话框

示例使用的iOS风格对话框: BubbleDialog

全局自定义

初始化时指定加载对话框构造器NetDialogFactory

NetConfig.initialize(Api.HOST, this) {
        setDialogFactory {
            ProgressDialog(it).apply {
                setMessage("我是全局自定义的加载对话框...")
            }
        }
}

如仅修改加载对话框文本, 在项目values目录的strings.xml添加以下

<!--对话框-->
<string name="net_dialog_msg">加载中</string>

自定义的加载框不是Dialog

由于scopeDialog只能指定Dialog类型, 因此只能手动实现Dialog接口

仅要求复写 DialogCoroutineScope 内调用的Dialog方法

生命周期

使用scopeDialog发起请求后, 分为三个生命周期

加载框状态 作用域
显示 执行scopeDialog时显示加载框
隐藏 作用域内任务结束时隐藏加载框
手动取消 取消作用域内所有网络请求