是否可以使用
Android绑定功能将setonPagechangelistener的处理程序绑定到XML文件中的ViewPager?
演示显示onClick事件,但我很好奇我可以用它实现多少事件功能.关于数据绑定功能的任何链接也都很棒.谢谢.
假设的例子:
example_activity.xml
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="handlers" type="com.example.Handlers"/> </data> <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" android:onPagechangelistener="@{handlers.pageChanged}" /> </layout>
Handler.java
package com.example.viewmodels; import android.view.View; public class Handlers { public void pageChanged(View view){} }
编译错误是:
错误:(62)在’android’包中找不到属性’onPagechangelistener’的资源标识符
解决方法
有可能这样做.您需要实现自定义绑定适配器,因为没有为Android支持库中的View类预定义BindingAdapter类.
代码应该如下所示,我没有彻底测试它们:
<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代码:
@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); }
附:您传递的处理程序类应该实现ViewPager.OnPagechangelistener.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。