import android.content.Context; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.Toast; /** * Created by ${徐嘉健} */ public class EmptyView extends RelativeLayout { private Context mContext; private View inflate; private Button btn_empty_reload; private Button btn_netempty; public EmptyView(Context context) { super(context); } public EmptyView(Context context, AttributeSet attrs) { super(context, attrs); this.mContext = context; } //设置 空页面 类型 public EmptyView setType(int type) { if (type == 0)//没有网络 LayoutInflater.from(mContext).inflate(R.layout.view_network_empty, this); else //没有数据 LayoutInflater.from(mContext).inflate(R.layout.view_empty, this); return this; } //初始化空页面 传进来的View隐藏 view是不需要加载的控件 public EmptyView initEmpty(View view) { if (NetworkUtil.getNetWorkState(mContext) == -1) {//无网络状态 inflate = LayoutInflater.from(mContext).inflate(R.layout.view_network_empty, this); btn_netempty = findViewById(R.id.btn_netempty); btn_netempty.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(mContext, "哎呀~ 网络还没有准备好!", Toast.LENGTH_SHORT).show(); } }); } else {//空数据状态 inflate = LayoutInflater.from(mContext).inflate(R.layout.view_empty, this); btn_empty_reload = findViewById(R.id.btn_empty_reload); } view.setVisibility(GONE); return this; } //重新刷新 public EmptyView setOnAgainRefrush(final OnEmptyListener listener) { btn_empty_reload.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { listener.setAgainRefrush(); } }); return this; } } interface OnEmptyListener { void setAgainRefrush(); } 布局view_network_empty
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/line1" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#F5F5F5" android:gravity="center" android:orientation="vertical"> <ImageView android:id="@+id/iv_netempty_info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="bottom" android:src="@drawable/ic_launcher_background" android:textSize="140sp" /> <TextView android:id="@+id/tv_netempty_msg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="网络未连接" android:textColor="#A6A6A6" android:textSize="14sp" /> <Button android:id="@+id/btn_netempty" android:layout_width="wrap_content" android:layout_height="35dp" android:layout_marginBottom="50dp" android:layout_marginTop="20dp" android:background="#ff0" android:text="连接网络" android:textColor="@color/black" /> </LinearLayout>
布局 view_empty
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#F5F5F5" android:gravity="center" android:id="@+id/line1" android:orientation="vertical"> <ImageView android:id="@+id/iv_empty_info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="bottom" android:src="@mipmap/ic_launcher" android:textSize="140sp" /> <TextView android:id="@+id/tv_empty_msg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="暂无数据" android:textColor="#A6A6A6" android:textSize="14sp" /> <Button android:id="@+id/btn_empty_reload" android:layout_width="wrap_content" android:layout_height="35dp" android:layout_marginBottom="50dp" android:layout_marginTop="20dp" android:background="#99CA54" android:text="重新加载" android:textColor="@color/white" /> </LinearLayout>
非常简单的用法 文字图片根据需求进行修改吧 暂时未处理 、