DialogFragment+ViewBinding简单封装


package com.wuhongru.fruitgame.gambase

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
import androidx.annotation.LayoutRes
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.DialogFragment
import androidx.viewbinding.ViewBinding

abstract class BaseDialogFragment<VB:ViewBinding>(@LayoutRes val resId:Int): DialogFragment() {
    private lateinit var mBinding: VB

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        mBinding = DataBindingUtil.inflate(inflater,resId,container,false)
        return mBinding.root
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        initView(mBinding)
    }

    override fun onStart() {
        super.onStart()
        dialog?.window?.let {
            val layoutParams = it.attributes
            layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT
            layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT
            it.attributes = layoutParams
            // 设置使用WindowManager.LayoutParams.FLAG_DIM_BEHIND时窗口后面的调光量。这将覆盖窗口根据其主题选择的默认调光量。0-1f
            it.setDimAmount(0.7f)
        }
    }

    abstract fun initView(mBinding: VB)


}

文章作者: Lao Wu
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Lao Wu !
评论
  目录