一行解决:
Kotlin
window?.setBackgroundDrawableResource(android.R.color.transparent)
原文件:
Kotlin
/**
* Created by Xinghai.Zhao
* 自定义选择弹框
*/
@SuppressLint("InflateParams", "MissingInflatedId")
class CustomDialog(context: Context?) : AlertDialog(context){
var mCallBack: ClickCallBack? = null
var mTextViewTitle: TextView? = null
var mTextViewContent: TextView? = null
var mEditText:EditText? = null
var mEditTextMax:TextView? = null
var mEditLayout: View? = null
var mTextViewYes: TextView? = null
var mTextViewNo: TextView? = null
var mLine: View? = null
var isEdit:Boolean = false
constructor(context: Context?, title: String?, content: String?, callBack: ClickCallBack, isEditType:Boolean) : this(context) {
mCallBack = callBack
isEdit = isEditType
mTextViewTitle?.text = title?:""
mTextViewContent?.text = content?:""
if (isEdit){
mEditLayout?.visibility = View.VISIBLE
}else{
mEditLayout?.visibility = View.GONE
}
}
init {
val inflate = LayoutInflater.from(context).inflate(R.layout.dialog_custom, null)
setView(inflate)
window?.setBackgroundDrawableResource(android.R.color.transparent)
//设置点击别的区域不关闭页面
setCancelable(false)
mTextViewTitle = inflate.findViewById(R.id.dialog_custom_title)
mTextViewContent = inflate.findViewById(R.id.dialog_custom_content)
mEditText = inflate.findViewById(R.id.dialog_custom_edit)
mEditTextMax = inflate.findViewById(R.id.dialog_custom_edit_max)
mEditLayout = inflate.findViewById(R.id.dialog_custom_edit_layout)
mTextViewYes = inflate.findViewById(R.id.dialog_custom_yes)
mTextViewYes?.setOnClickListener{mCallBack?.onYesClick(this)}
mTextViewNo = inflate.findViewById(R.id.dialog_custom_no)
mTextViewNo?.setOnClickListener{dismiss()}
mLine = inflate.findViewById(R.id.dialog_custom_line)
}
interface ClickCallBack {
fun onYesClick(dialog: CustomDialog)
}
}
layout:
XML
<?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="wrap_content"
android:background="@drawable/bg_set"
android:orientation="vertical">
<TextView
android:id="@+id/dialog_custom_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="20dp"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/dialog_custom_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="30dp"
android:textColor="@color/black"
android:textSize="14sp" />
<LinearLayout
android:id="@+id/dialog_custom_edit_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingBottom="20dp"
android:visibility="gone">
<EditText
android:id="@+id/dialog_custom_edit"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:maxLength="10"
android:maxLines="1"
android:padding="10dp"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/dialog_custom_edit_max"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:padding="10dp"
android:textColor="@color/grey"
android:textSize="12sp" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/grey2" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/dialog_custom_no"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="10dp"
android:text="取消"
android:textColor="@color/black"
android:textSize="16sp" />
<TextView
android:id="@+id/dialog_custom_line"
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/grey2" />
<TextView
android:id="@+id/dialog_custom_yes"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="10dp"
android:text="确定"
android:textColor="@color/blue"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
bg_set.xml:
XML
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="14dp" /> <!-- 圆角半径为10dp -->
<solid android:color="@color/white" /> <!-- 设置黑色背景并且70%不透明度 -->
</shape>