当尝试以这种方式将演示器膨胀并设置为我的数据绑定组件时,我的演示器方法不会被调用。
val fragmentBinding = FragmentListEditBinding.inflate(layoutInflater)
fragmentBinding.presenter = ListEditorPresenter(this, requireContext())
但是当使用
时val fragmentBinding = DataBindingUtil.setContentView<FragmentListEditBinding(requireActivity(), R.layout.fragment_list_edit)
fragmentBinding.presenter = ListEditorPresenter(this, requireContext())
它工作得很好,但是布局覆盖了整个屏幕。有什么办法解决这个问题吗?
如果需要更多的上下文,请告诉我。
第二个方法是用于活动,而不是用于片段,对于片段,您必须在第一个方法中执行。
在DataBinding和ViewBinding之前,在和activity
中,我们调用setContentView(R.layout.activity_main)
来为activity
设置视图,但对于fragment
,我们覆盖onCreateView
方法并膨胀视图并返回它。
所以activity
和fragment
的视图设置方式从一开始就不一样了。
所以DataBindingUtil.setContentView
是为活动制作的,而FragmentListEditBinding.inflate
自定义/手动膨胀是为碎片制作的。正如我在上面已经提到过的。