有没有办法使用绑定库将自定义onSomeEventListener
连接到属性?为onClick
提供的示例很简单,它们都使用'on'前缀和单方法接口侦听器,那么'add'前缀和更复杂的场景呢?
想象一下,我想在RecyclerView.addOnItemTouchListener上使用自定义连线逻辑,确定从SimpleOnItemTouchListener.onTouchEvent触摸子视图并将其传递给我的视图模型,我该如何实现?
我想结束这样的事情:
<RecyclerView
app:onItemTouch="@{handlers::recyclerViewOnItemTouch}"/>
public class Handlers {
public void recyclerViewOnItemTouch(View view) { ... }
}
使用BindingAdapter和InverseBindingListener通知绑定框架有关您的自定义属性更新时是否有类似的方法?
@BindingAdapter("app:someAttrChanged")
public static void setListener(View view, InverseBindingListener listener)
答案 0 :(得分:1)
经过一番调查和反复试验,我找到了解决方案。
当然,您需要激活Binding
或Activity
中的Fragment
并为其设置ClickHandler
的实例,并为其设置变量它位于xml
的{{1}}。假设你已经知道,我会继续:
魔术的一部分是ClickHandler
使用app:addOnItemTouchListener
:
RecyclerView
另一部分是<android.support.v7.widget.RecyclerView
android:id="@+id/rec_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:addOnItemTouchListener="@{clickHandler.touchListener}"/>
:
ClickHandler.class