DialogFragmentでViewBindingを利用する
DialogやFragmentの layoutInflater
を使ってViewBindingをinflateして、Dialogの setContentView
にわたす。クリック時にDialogをdismissしたい場合などは先にDialogを作っておいて dialog.dismiss()
をすれば良い。
class HogeDialogFragment : DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val binding = FragmentHogeBinding.inflate(layoutInflater) binding.textView.text = getString(R.string.hello_world) return super.onCreateDialog(savedInstanceState).apply { // val binding = FragmentHogeBinding.inflate(layoutInflater) // binding.textView.text = getString(R.string.hello_world) setContentView(binding.root) } }
普段はAlertDialogにsetViewするのであまり使わないけど、リファクタリングとかに役立つかも。