s如题封装一个简单的Dialog基类。支持居上下左右,可设置是否铺满屏幕、是否需要阴影、上下偏移、是否可以点击外部关闭、设置dismiss监听。
还提供了一些方便设置view属性的方法。
package com.youthmba.ymbaandroid.appbiz.basics.widget.dialog
import android.app.Activity
import android.app.AlertDialog
import android.content.Context
import android.content.DialogInterface
import android.graphics.Color
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.WindowManager
import android.widget.ImageView
import android.widget.TextView
import com.youthmba.ymbaandroid.R
import kotlin.Int as Int1
/**
* context
* layoutId 布局
* gravity 位置
* matchParent 是否铺满屏幕
* needDim 需不需要阴影
* y 上下偏移
*/
abstract class BaseDialog(var context: Context,var layoutId: Int1, var gravity: Int1, var matchParent:Boolean, var needDim:Boolean, var y:Int1) {
constructor(context: Context,layoutId: kotlin.Int):this(context,layoutId,Gravity.CENTER,false,true,-1)
constructor(context: Context, layoutId: Int1, gravity: Int1):this(context,layoutId,gravity,false,true,-1)
constructor(context: Context, layoutId: Int1, matchParent: Boolean):this(context,layoutId,Gravity.CENTER,matchParent,true,-1)
constructor(context: Context,layoutId: kotlin.Int,gravity: Int1,matchParent:Boolean):this(context,layoutId,gravity,matchParent,true,-1)
constructor(context: Context,layoutId: kotlin.Int,gravity: Int1,matchParent:Boolean, needDim:Boolean):this(context,layoutId,gravity,matchParent,needDim,-1)
protected var contentView :View?= null
fun show(){
contentView = LayoutInflater.from(context).inflate(layoutId, null)
contentView?.let {
val dialog = AlertDialog.Builder(context,getStyle())
.setView(it)
.setCancelable(getCancelable())