Kotlin自定义dialog

Kotlin自定义dialog

由于系统自带的dialog都比较的简单,无法满足产品的需要,而且也不够美观,所以能自定义随心所欲的dialog岂不是美滋滋。

步骤如下
1.写好自定义的dialog_exit.xml



    
        
        
    
    
    
        
            
        
    
    
        

2定义继承dialog的ExitDiaolg类

package com.example.remoteapp2.dialog
import android.app.Dialog
import android.content.Context
import android.view.Gravity
import android.view.View
import android.view.ViewGroup
import com.example.remoteapp2.R
import kotlinx.android.synthetic.main.dialog_exit.*

class ExitDiaolg : Dialog{
    constructor(context: Context) : this(context,0)
    constructor(context: Context, themeResId: Int) : super(context,R.style.dialog){
        setContentView(R.layout.dialog_exit)
        window.setGravity(Gravity.CENTER)
        window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT)
    }
    public fun setOnclickListener(listener: View.OnClickListener){
        if (positivebtexit !== null){
            positivebtexit.setOnClickListener(listener)
        }
        if (negetiveimgexit !== null){
            negetiveimgexit.setOnClickListener(listener)
        }

    }
}

R.style.dialog内容如下:

 

3调用:
(1)在所在活动中

  private val edialog:ExitDiaolg by lazy {

       ExitDiaolg(this)
   }
  fun showExit(){
        edialog.show()
        edialog.setOnclickListener(object :View.OnClickListener{
            override fun onClick(v: View) {
                if(v.id == R.id.negetiveimgexit){
                  edialog.dismiss()
                }
                if (v.id == R.id.positivebtexit){
                   finish()
                }
            }
        })

    }
 override fun onBackPressed() {
        showExit()
    }

效果:Kotlin自定义dialog_第1张图片

你可能感兴趣的:(Kotlin自定义dialog)