美文网首页
自定义加载中Dialog....

自定义加载中Dialog....

作者: 心中有梦丶身边有你 | 来源:发表于2019-04-27 20:42 被阅读0次

一般当安卓请求接口的时候, 会有1秒左右的请求时间, 而在这个过程中需要一个正在加载中的效果.

我这里是写在了自定义的BaseActivity中

private LoadDialog loadDialog;
private boolean flag = false;

@Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mContext = BaseActivity.this;
        loadDialog = new LoadDialog(mContext, R.style.MyDialogStyle);
    }

 public boolean showDialog(boolean isShow) {
        if (isShow) {
            flag = true;
            loadDialog.show();
        } else {
            flag = false;
            loadDialog.dismiss();
        }

        return flag;
    }

style中加入

 <!-- 自定义网络加载 -->
    <style name="MyDialogStyle">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <item name="android:backgroundDimEnabled">true</item>
    </style>

弹出框工具类

/**
 * 自定义弹出框
 */
public class LoadDialog extends Dialog {
    public LoadDialog(Context context, int theme) {
        super(context, theme);
        // TODO Auto-generated constructor stub
    }

    protected LoadDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
        super(context, cancelable, cancelListener);
        // TODO Auto-generated constructor stub
    }

    public LoadDialog(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.app_customdialog);
    }

}

app_customdialog.xml 样式

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/loaddialog"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:paddingLeft="8dp"
    android:paddingRight="8dp"
    android:background="@drawable/shape_item"
    android:layout_gravity="center"
    android:gravity="center"

    android:orientation="vertical" >


        <!-- 定义一个中等环形进度条 -->

        <ProgressBar
            android:id="@+id/progress1"
            android:layout_width="40dp"
            android:layout_height="40dp" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="1dp"
            android:text="加载中..."
            android:textColor="#aaa"
            android:textSize="14sp" />

</LinearLayout>

引用背景shape_item.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
<solid android:color="@color/white"/>
    <corners android:radius="5dp"/>

</shape>

在activity中调用 记得继承你的自定义BaseActivity

showDialog(true); //为true的时候是关闭加载框, 一般放到请求前面
showDialog(false); //加载完毕, 关闭加载框

相关文章

网友评论

      本文标题:自定义加载中Dialog....

      本文链接:https://www.haomeiwen.com/subject/zsllnqtx.html