更新时间:2023-01-14 09:51:32
可以这样做.您需要实现自定义绑定适配器,因为Android支持库中没有为View类预定义的BindingAdapter类.
It is possible to do this. You need to implement a custom binding adapter because there is no BindingAdapter classes predefined for View classes from Android support libraries.
有关如何实现自定义适配器的信息,请阅读此.
For how to implement the custom adapter you may read this.
代码应类似于以下内容,但我尚未对其进行全面测试:
The code should be something like the below, I haven't tested them thoroughly:
<android.support.v4.view.ViewPager
android:id="@+id/pager"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:onPageChangeListener="@{handlers}" />
您的BindingAapter代码:
Your BindingAapter code:
@BindingAdapter("onPageChangeListener")
public static void setOnPageChangeListener(ViewPager viewPager, ViewPager.OnPageChangeListener listener) {
Log.i("setOnPageChangeListener");
// clear listeners first avoid adding duplicate listener upon calling notify update related code
viewPager.clearOnPageChangeListeners();
viewPager.addOnPageChangeListener(listener);
}
P.S.您传递的处理程序类应实现ViewPager.OnPageChangeListener
.
P.S. Your handler class being passed should implement ViewPager.OnPageChangeListener
.