问题描述
当尝试以这种方式将我的presenter 设置为我的数据绑定组件时,我的presenter 方法不会被调用。
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())
它工作正常,但布局覆盖了全屏。 任何想法如何解决这个问题?
如果需要更多上下文,请告诉我。
解决方法
第二种方法是针对activity的,不是针对fragment的,对于fragment,你必须用第一种方法来做。
在 DataBinding 和 ViewBinding 之前,In 和 activity
我们调用 setContentView(R.layout.activity_main)
来设置 activity
的视图,但是对于 fragment
,我们覆盖 onCreateView
方法并膨胀一个视图并返回它。
所以 activity
和 fragment
的设置视图的方式与开始不同。
所以 DataBindingUtil.setContentView
是为 Activity 制作的,而 FragmentListEditBinding.inflate
自定义/手动膨胀是为 Fragment 制作的。正如我上面已经提到的。