Dialog实现全局Loading加载框
很多人在实现Loading加载框的时候,都是在当前的页面隐藏一个Loading布局,需要加载的时候,显示出来,加载完再隐藏
使用Dialog实现Loading框可以实现低耦合。
效果图
自定义Loading类
package ……;import ……;/** * Created by kongqw on 2015/12/3. */public abstract class Loading extends Dialog { public abstract void cancle(); public Loading(Context context) { super(context, R.style.Loading); // 加载布局 setContentView(R.layout.view_loading); // 设置Dialog参数 Window window = getWindow(); WindowManager.LayoutParams params = window.getAttributes(); params.gravity = Gravity.CENTER; window.setAttributes(params); } // TODO 封装Dialog消失的回调 @Override public void onBackPressed() { // 回调 cancle(); // 关闭Loading dismiss(); }}
给自定义的Dialog添加自定义属性
在values文件夹下styles.xml里添加属性
……
Loading布局
使用
初始化
cancle()是按返回键,Loading框关闭的回调,可以做取消加载请求的操作。
// 添加LoadingLoading mLoading = new Loading(this) { @Override public void cancle() { }};
显示Loading框
// 显示LoadingmLoading.show();
关闭Loading框
// 关闭LoadingmLoading.dismiss();