Android 日常封裝之暴力CustomViewDialog自定義對話方塊
阿新 • • 發佈:2019-02-06
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, booleantouchOutsideCancelable, 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); } }