演示者未在 onClick 中调用

问题描述

当尝试以这种方式将我的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方法并膨胀一个视图并返回它。

所以 activityfragment 的设置视图的方式与开始不同。

所以 DataBindingUtil.setContentView 是为 Activity 制作的,而 FragmentListEditBinding.inflate 自定义/手动膨胀是为 Fragment 制作的。正如我上面已经提到的。