如何在 BottomSheetDialog 上使用视图绑定

How to use View Binding on BottomSheetDialog

我正在尝试在我的 MainActivity 中创建一个 BottomSheetDialog,但现在我正在使用合成来绑定我的视图。但现在我不知道如何将 ViewBinding 附加到我的 BottomSheetDialog.

这是我使用合成材料所做的。

dialog = BottomSheetDialog(this, R.style.BottomDialogStyle)
dialogView = LayoutInflater.from(this).inflate(R.layout.test_dialog, dialog.mainContainer, false)
dialog.setContentView(dialogView)

这就是让我感到困惑的地方 ViewBinding

dialog = BottomSheetDialog(this, R.style.BottomDialogStyle)
binding = TestDialogBinding.inflate(?)
dialog.setContentView(binding.root)

从上面的示例中,我想知道我应该用什么填充参数,因为与 activity 不同,在 activity 中我可以只用 layoutInflater 或 [=16 填充该参数=] 我无法用

填充该参数的适配器

LayoutInflater.from(parent.context), parent, and false.

您还可以创建 LayoutInflater :

val inflater = LayoutInflater.from(requireContext())

然后将 inflate 传递给:

binding = TestDialogBinding.inflate(inflater)

对于绑定,请按照所述进行操作:

 bottomSheetDialog = BottomSheetDialog(mContext, R.style.BottomSheetDialogStyle)
 mBottomSheetBinding = TestDialogBinding.inflate(layoutInflater, null, false)

 bottomSheetDialog.setContentView(mBottomSheetBinding!!.root)
 bottomSheetDialog.show()

在你的BottomSheetDialogclass中定义绑定变量:

private var binding: BottomSheetDatePickerBinding

然后你可以覆盖init

init {
    binding = BottomSheetDatePickerBinding.inflate(
        LayoutInflater.from(context)
    )
    setContentView(binding.root)
}