美文网首页
Android中修改Dialog下的窗口变暗

Android中修改Dialog下的窗口变暗

作者: 因为我的心 | 来源:发表于2022-12-11 11:00 被阅读0次

一、前言:

在继承AppCompatDialogFragment()方法中的dialog弹窗一直有灰色背景,去不掉;

766c928ef6b0b6359ba4d0fac7b45b2.png
  override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        dialog?.window?.attributes?.apply {
            width = WindowManager.LayoutParams.MATCH_PARENT //ViewGroup.LayoutParams.MATCH_PARENT
            height = WindowManager.LayoutParams.WRAP_CONTENT //182.dp
            gravity = Gravity.BOTTOM
            dimAmount = 0f//1、调节灰色背景透明度[0,1],默认0.5
            isCancelable = true
        }
       // dialog?.window?.setBackgroundDrawableResource(android.R.color.transparent)//添加背景透明色
       // dialog?.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) //2、去掉灰色背景
        dialog?.window?.setWindowAnimations(R.style.dialogBottomInOut)

    }

二、解决:

demo参考:https://gitee.com/lyyon/MyFragmentDialog

1、方法一:

添加dimAmount 属性:

dimAmount = 0.0f //调节灰色背景透明度[0,1],默认0.5

2、方法二:

添加clearFlags

dialog?.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) //去掉灰色背景

源码:

//调用
    btn_play.onClickWithSpring(1.05f) {
            PartyFunPlayDialog.newInstance().apply {
                this.controllerContext = ctx
                show()
            }
        }
open class PartyFunPlayDialog : UkiDialogFragment() {

    private val binding by viewBinding(DialogPartyFunPlayViewBinding::bind)

    //点击送礼
    var clickGift: ((people: MemberBundle) -> Unit)? = null



    val personalModel by lazy {
        ViewModelProvider(this).get(PersonalModel::class.java)
    }


    var people: MemberBundle? = null

    companion object {
        const val TYPE = "type" //0-在麦列表,1-不在麦列表

        fun newInstance(): PartyFunPlayDialog {
            return PartyFunPlayDialog().apply {
//                if (people.pendantList == null) {//此步防止member 使用 putParcelable 时带有空列表数据导致崩溃
//                    people.pendantList = mutableListOf()
//                }
//                arguments = Bundle().apply {
//                    putParcelable(MEMBER, people)
//                    putBoolean(IS_OWNER_VIEW, isOwnerView)
//                }
            }
        }
    }




    override fun createView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        return inflater.inflate(R.layout.dialog_party_fun_play_view, container, false)
    }



    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
//        people = arguments?.getParcelable(MEMBER)
//        familyInfo = arguments?.getParcelable(FAMILY_INFO)

        with(binding){
            tvTitle.text = "你好啊,很好"
//             var list = mapOf<Int>()
//            var myAdapter = GameAdapter(R.layout.item_gift_album_view, null)
//            var linearLayoutManager = LinearLayoutManager(mContext)
//             linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
//             rvList.layoutManager = linearLayoutManager
//            rvList.adapter = myAdapter
//            rvList?.setNewData(list)
        }

    }



    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        dialog?.window?.attributes?.apply {
            width = WindowManager.LayoutParams.MATCH_PARENT //ViewGroup.LayoutParams.MATCH_PARENT
            height = WindowManager.LayoutParams.WRAP_CONTENT //182.dp
            gravity = Gravity.BOTTOM
            //dimAmount = 0f//1、调节灰色背景透明度[0,1],默认0.5
            isCancelable = true
        }
       // dialog?.window?.setBackgroundDrawableResource(android.R.color.transparent)//添加背景透明色
       // dialog?.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) //2、去掉灰色背景
        dialog?.window?.setWindowAnimations(R.style.dialogBottomInOut)

    }
}

相关文章

网友评论

      本文标题:Android中修改Dialog下的窗口变暗

      本文链接:https://www.haomeiwen.com/subject/zcrfqdtx.html