美文网首页
Android 设置 DialogFragment 的宽度

Android 设置 DialogFragment 的宽度

作者: _发强 | 来源:发表于2021-07-14 23:27 被阅读0次

    Android Dialog Fragment 必须要实现 onCreateDialog 或者 onCreateView 其中一个方法,

    在 onCreateView 中就是通过日常的 Fragment 写法,去设置布局,
    在 onCreateDialog 中就是要实现一个 Dialog了:

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
            return activity?.let {
    
                val builder = AlertDialog.Builder(it)
                val inflater = requireActivity().layoutInflater
                val layout = inflater.inflate(R.layout.dialog_xxxx, null, false)
                builder.setView(layout)
    
               
                builder.create()
            } ?: throw Throwable("Activity cannot be null")
        }
    
    

    如果需要设置 Dialog 的宽度或者背景,可通过以下代码来实现:

    override fun onStart() {
            super.onStart()
            val dialog = dialog
            if (dialog != null) {
                val dm = DisplayMetrics()
                activity?.windowManager?.defaultDisplay?.getMetrics(dm)
                dialog.window?.let {
                    it.setLayout((dm.widthPixels * 0.8).toInt(), ViewGroup.LayoutParams.WRAP_CONTENT)
                    it.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
                }
            }
        }
    

    相关文章

      网友评论

          本文标题:Android 设置 DialogFragment 的宽度

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