@BindingAdapter会自动映射此参数吗?

时间:2020-02-17 02:16:12

标签: android

我正在使用exmaple学习AAC。 研究这个,我发现我听不懂。 @BindingAdapter使用此注释的乐趣有2个参数。 一个是视图,另一个是数据。 查看xml,只有一个参数“数据”。 第一个参数“视图”是否自动与视图映射?

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/tasks_list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
            app:items="@{viewmodel.items}" />

        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="@dimen/activity_horizontal_margin"
            android:layout_marginStart="@dimen/activity_horizontal_margin"
            android:textAppearance="@style/TextAppearance.AppCompat.Title"
            android:text="@{task.titleForList}"
            app:completedTask="@{task.completed}" />


@BindingAdapter("app:items")
fun setItems(listView: RecyclerView, items: List<Task>) {
    (listView.adapter as TasksAdapter).submitList(items)
}

@BindingAdapter("app:completedTask")
fun setStyle(textView: TextView, enabled: Boolean) {
    if (enabled) {
        textView.paintFlags = textView.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
    } else {
        textView.paintFlags = textView.paintFlags and Paint.STRIKE_THRU_TEXT_FLAG.inv()
    }
}

0 个答案:

没有答案