下面介绍一款不错的Dialog,之所以介绍是因为它可以实现数据加载时的progressBar,并且还可以让界面失去焦点从而不能点击界面上组件的作用。话不多说,直接上代码。
dialog_loading.xml
<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pbLoading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:theme="@android:style/Widget.ProgressBar" />
LoadingDialog.java
public class LoadingDialog extends AlertDialog{
public LoadingDialog(Context context, int theme) {
super(context, theme);
}
public LoadingDialog(Context context) {
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_loading);
}
}
具体使用
private void popLoadingDialog(final boolean showLoadingDialog) {
if (mLoadingDialog == null) {
mLoadingDialog = new LoadingDialog(mContext, R.style.dialog);
mLoadingDialog.setCanceledOnTouchOutside(false);
}
if (showLoadingDialog) {
mLoadingDialog.show();
} else {
mLoadingDialog.dismiss();
}
}
style样式
<style name="dialog">
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowFrame">@null</item><!--边框-->
<item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
<item name="android:windowIsTranslucent">true</item><!--半透明-->
<item name="android:windowNoTitle">true</item><!--无标题-->
<item name="android:windowBackground">@android:color/transparent</item><!--背景透明-->
<item name="android:backgroundDimEnabled">false</item><!--模糊-->
</style>