import android.app.Dialog; import android.content.Context; import android.support.annotation.LayoutRes; import android.support.annotation.NonNull; import android.support.annotation.StyleRes; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import com.xxx.xxx.R; /** * @author Created by qlang on 2017/5/26. */ public class CustomViewDialog extends Dialog { public CustomViewDialog(@NonNull Context context, @StyleRes int themeResId) { super(context, themeResId); } /** * 实例一个对话框 * * @param context * @param layoutResID 布局资源id * @param cancelable 是否可以按返回键取消 * @param touchOutsideCancelable 是否可以点击外部取消 * @param listener 回调 * @return */ public static CustomViewDialog newInstance(@NonNull Context context, @LayoutRes int layoutResID, boolean cancelable, boolean touchOutsideCancelable, ViewCallBack listener) { View view = LayoutInflater.from(context).inflate(layoutResID, null); return newInstance(context, view, cancelable, touchOutsideCancelable, listener); } /** * 实例一个对话框 * * @param context * @param view view on your show * @param cancelable 是否可以按返回键取消 * @param touchOutsideCancelable 是否可以点击外部取消 * @param listener 回调 * @return */ public static CustomViewDialog newInstance(@NonNull Context context, View view, boolean cancelable, boolean touchOutsideCancelable, final ViewCallBack listener) { CustomViewDialog dialog = new CustomViewDialog(context, R.style.CustomDialogTheme); dialog.setContentView(view); dialog.getWindow().getAttributes().gravity = Gravity.CENTER; dialog.setCanceledOnTouchOutside(touchOutsideCancelable); dialog.setCancelable(cancelable); if (listener != null) { listener.onCallBack(view, dialog); } return dialog; } public interface ViewCallBack { void onCallBack(View contentView, CustomViewDialog dialog); } }
Android 日常封装之暴力CustomViewDialog自定义对话框
最新推荐文章于 2024-05-13 16:19:55 发布