DataBinding RecyclerView:找不到属性“app:items”的设置器
Posted
技术标签:
【中文标题】DataBinding RecyclerView:找不到属性“app:items”的设置器【英文标题】:DataBinding RecyclerView: Cannot find the setter for attribute 'app:items' 【发布时间】:2017-03-16 17:10:12 【问题描述】:当我尝试出价 RecyclerView
时出现此错误
错误:(15, 22) 在
android.support.v7.widget.RecyclerView
上找不到参数类型为android.databinding.ObservableArrayList<com.toong.databindingdemo.recycler.UserViewModel
的属性“app:items”的设置器。
这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="usersViewModel"
type="com.toong.databindingdemo.recycler.UsersViewModel" />
</data>
<android.support.v7.widget.RecyclerView
android:id="@+id/activity_users_recycler"
android:layout_
android:layout_
app:items="@usersViewModel.users"
/>
</layout>
但是在UsersViewModel
我已经有一个公共用户数组
package com.toong.databindingdemo.recycler;
import android.databinding.BaseObservable;
import android.databinding.Bindable;
import android.databinding.ObservableArrayList;
public class UsersViewModel extends BaseObservable
@Bindable
public ObservableArrayList<UserViewModel> users;
public UsersViewModel()
this.users = new ObservableArrayList<>();
我已经清理并重建了项目,但它仍然无法正常工作。我该如何解决这个错误?
【问题讨论】:
【参考方案1】:RecyclerView
中没有类似app:items
的属性。您需要为此创建自定义绑定方法
@BindingAdapter("items")
public static void entries(RecyclerView recyclerView, String[] array)
//write your code to set RecyclerView adapter.
将array
的类型更改为您需要的数据类型。
【讨论】:
以上是关于DataBinding RecyclerView:找不到属性“app:items”的设置器的主要内容,如果未能解决你的问题,请参考以下文章
可以将 ViewModel 传递给 RecyclerView(无 DataBinding)吗?
DataBinding:如何使用 Kotlin 中的泛型创建具有多个 ViewHolder(多个布局)的 Recyclerview
Android jetpack DataBinding 与RecyclerView
RecyclerView项的属性在使用DataBinding时自动更改
DataBinding RecyclerView:找不到属性“app:items”的设置器
Android RecyclerView Adapter DataBinding - 找不到符号 layoutBindingImpl