运行时异常:视图标记在视图上不正确:在视图议程项目绑定.bind() 方法上为 null



我有非常简单的代码,该代码应该根据数据指示进行几篇文章工作,但由于某种原因不是。

我正在尝试将RecycleView与DataBinding一起使用。

class ItemViewHolder extends RecyclerView.ViewHolder{
    ViewAgendaItemBinding binding;
    public ItemViewHolder(View itemView) {
        super(itemView);
        binding = ViewAgendaItemBinding.bind(itemView); //this is line where it's throw an error.
    }
}

我检查了此bind方法的生成版本,看起来像:

public static ViewAgendaItemBinding bind(android.view.View view, android.databinding.DataBindingComponent bindingComponent) {
        if (!"layout/view_agenda_item_0".equals(view.getTag())) {
            throw new RuntimeException("view tag isn't correct on view:" + view.getTag());
        }
        return new ViewAgendaItemBinding(bindingComponent, view);
    }

这很奇怪。因为我没有layout/view_agenda_item_0。此视图应使用layout/view_agenda_item,并且我非常不设置任何标签。但是,即使我为此确切的元素设置了这些标签,它仍然不起作用。

我该怎么办?

P.S。但是,如果我将此代码ViewAgendaItemBinding.bind(itemView)更改为此DataBindingUtils.bind(itemView),则可以正常工作。数据列表中的问题是一个问题吗?

数据绑定在编译过程中的布局文件重新编写,因此它将自动添加标签。

DataBindingUtils.bind检查视图上是否存在现有绑定并重新使用它。看起来其他地方已经在该视图上绑定了初始化的数据。我认为我们应该将ViewAgendaItemBinding.bind方法更改为同样的方法。

最新更新