中建365-优化
parent
0913f3115c
commit
ddb7b5f2ed
@ -0,0 +1,85 @@
|
||||
package com.xty.base.dialog
|
||||
|
||||
import android.content.DialogInterface
|
||||
import android.os.Bundle
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.Window
|
||||
import android.view.WindowManager
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.xty.base.vm.BaseVm
|
||||
import com.xty.common.ReflexUtils
|
||||
|
||||
abstract class BaseDialogFragment :DialogFragment(){
|
||||
|
||||
|
||||
protected lateinit var mView: View
|
||||
private var dismissListener: OnDismissListener? = null
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
getStyle()?.let {
|
||||
setStyle(STYLE_NORMAL, it)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
dialog?.requestWindowFeature(Window.FEATURE_NO_TITLE)
|
||||
mView = onCreateView()
|
||||
|
||||
initView()
|
||||
initData()
|
||||
initListener()
|
||||
return mView
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
//设置 dialog 的宽高
|
||||
dialog?.window?.let {
|
||||
it.setBackgroundDrawable(null)
|
||||
val lp: WindowManager.LayoutParams = it.attributes
|
||||
lp.gravity = getGravity()
|
||||
lp.width = getWidth()
|
||||
lp.height = getHeight()
|
||||
if (isBGTransparent()) {
|
||||
lp.dimAmount = 0.0f
|
||||
} else {
|
||||
lp.dimAmount = 0.5f
|
||||
}
|
||||
|
||||
it.attributes = lp
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onDismiss(dialog: DialogInterface) {
|
||||
super.onDismiss(dialog)
|
||||
dismissListener?.onDismiss()
|
||||
}
|
||||
fun setOnDismissListener(dismissListener: OnDismissListener) {
|
||||
this.dismissListener = dismissListener
|
||||
}
|
||||
|
||||
protected abstract fun onCreateView(): View
|
||||
protected open fun getStyle(): Int? = null //弹框样式 动画
|
||||
protected open fun getGravity(): Int = Gravity.BOTTOM //弹框位置
|
||||
protected open fun isBGTransparent() = false //是否全透明背景
|
||||
|
||||
protected open fun getHeight(): Int = WindowManager.LayoutParams.WRAP_CONTENT //弹框最大高度
|
||||
protected open fun getWidth(): Int = WindowManager.LayoutParams.MATCH_PARENT //弹框最大高度
|
||||
|
||||
|
||||
protected abstract fun initView()
|
||||
|
||||
protected abstract fun initData()
|
||||
|
||||
protected abstract fun initListener()
|
||||
interface OnDismissListener {
|
||||
fun onDismiss()
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package com.xty.common.event
|
||||
|
||||
class RegisterSuccessEvent {
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Loading…
Reference in New Issue