This is how I make sure onViewCreated is called in kotlin:
class MyDialog: DialogFragment() {
private lateinit var dialogView: View
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
dialogView = LayoutInflater.from(context).inflate(R.layout.dialog, null)
val dialog = MaterialAlertDialogBuilder(context!!)
.setView(dialogView)
.create()
return dialog
}
// Need to return the view here or onViewCreated won't be called by DialogFragment, sigh
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return dialogView
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
// Yay it's now called!
}
override fun onDestroyView() {
dialogView = null
super.onDestroyView()
}
}