使用 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)
我正在尝试扩充我的自定义布局(一个对话框片段)。
我的函数 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)