BindingAdapter代码:
@BindingAdapter(value = ["vertical_divider_decorator_drawable"], requireAll = false)
@JvmStatic
fun bindRecyclerViewDivider(recyclerView: RecyclerView, vertical_divider_decorator_drawable: Drawable) {
val decorator = DividerItemDecoration(recyclerView.context, RecyclerView.VERTICAL)
decorator.setDrawable(vertical_divider_decorator_drawable)
recyclerView.addItemDecoration(decorator)
}
@BindingAdapter(value = ["vertical_divider_decorator_drawable"], requireAll = false)
@JvmStatic
fun bindRecyclerViewDivider(recyclerView: RecyclerView, vertical_divider_decorator_drawable: Int ) {
val decorator = DividerItemDecoration(recyclerView.context, RecyclerView.VERTICAL)
ResourcesCompat.getDrawable(recyclerView.context.resources, vertical_divider_decorator_drawable, null)
?.let { drawable -> decorator.setDrawable(drawable) }
recyclerView.addItemDecoration(decorator)
}XML中的RecyclerView:
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:vertical_divider_decorator_drawable="@drawable/row_divider"
android:id="@+id/list"
/>生成错误:
AAPT: error: attribute vertical_divider_decorator_drawable (aka com.package:vertical_divider_decorator_drawable) not found.BindingAdapter具有可绘制参数和Int参数,但编译器仍然不接受这两个参数。
发布于 2022-02-19 08:06:24
尝试从:app:vertical_divider_decorator_drawable="@drawable/row_divider"更改为:app:vertical_divider_decorator_drawable="@{@drawable/row_divider}"
如果没有帮助,请尝试如下:fun bindRecyclerViewDivider(recyclerView: RecyclerView, vertical_divider_decorator_drawable: Int) {
https://stackoverflow.com/questions/71183172
复制相似问题