使用 DialogFragment 布局 inflater

Layout inflater with DialogFragment

我正在尝试扩充我的自定义布局(一个对话框片段)。

我的函数 showDialog() 中有这个

    val inflatedView = layoutInflater.inflate(R.layout.alerts_dialog_remi, null)

    mydialog = Dialog(this, R.style.DialogCustomTheme)
    mydialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
    mydialog.setContentView(R.layout.alerts_dialog_remi)
    mydialog.setOnShowListener {
        val text = inflatedView.findViewById<TextView>(R.id.alerte_title)
        val lp = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)
        text.setText("Text")}

        mydialog.create()

        txt = mydialog.findViewById(R.id.close_modal_alerte)
        txt.isEnabled = true
        txt.setOnClickListener{
            mydialog.cancel()
        }
        mydialog.show()
    }

但是我在对话框片段中没有看到 "Text" 字符串。我尝试将 inflatedView 放在 setOnShowListener 中,但它也没有做任何事情。

您不需要夸大您的视图,因为 dialog.setContentView 会为您做到这一点。

您需要的是从 lambda 内部获取膨胀视图。

像这样:

 mydialog.setOnShowListener {
    val text = it.view.findViewById<TextView>(R.id.alerte_title)