Android中用到的弹框,通常是用系统的AlertDialog来实现的,怎么来实现呢?下面说下简单的实现方式
1.一般的弹框包含这几个主体:标题,内容,按钮。
代码如下
private fun showDialog() {
val builder : AlertDialog.Builder = createDialog()
// 创建dialog
val dialog :AlertDialog = builder.create()
// 设置点击弹框以外的区域会不会消失,true消失,false不消失
dialog.setCanceledOnTouchOutside(false)
// 设置消失监听
dialog.setOnDismissListener {
Toast.makeText(this,"弹框消失了",Toast.LENGTH_SHORT).show()
}
dialog.show()
}
// 创建build对象
private fun createDialog() : AlertDialog.Builder{
val builder : AlertDialog.Builder = AlertDialog.Builder(this)
// 设置标题
builder.setTitle("弹框标题")
// 设置内容
builder.setMessage("现在用到的是一个简单的弹框实现")
// 设置中立按钮
builder.setNegativeButton("确定",DialogInterface.OnClickListener { dialog, which ->
Toast.makeText(this,"弹框被点了下",Toast.LENGTH_SHORT).show()
})
return builder
}
2.一些常用的方法
- setTitle:设置弹框的标题;
- setMessage:设置弹框要传达的具体信息;
- setPositiveButton:设置正面按钮,表示“确认”的意思,第一个参数为按钮上显示的文字;
- setNegativeButton:设置反面按钮,表示“取消”的意思,第一个参数为按钮上显示的文字;
- setNeutralButton:设置弹框中立按钮,第一个参数为按钮上显示的文字;
- setIcon: 设置弹框的图标;
- setCancelable: 点击弹框以外的区域是否让对话框消失,默认为true;
- setCanceledOnTouchOutside(false) 设置点击弹框以外的区域会不会消失,true消失,false不消失 (但是物理返回键会使其消失)
- setOnShowListener:对弹框显示时触发的事件;
-
setOnCancelListener:对弹框消失时触发的事件。