当前位置:   article > 正文

dataBinding中使用include_databinding include

databinding include

DataBinding下 使用include包括对象的传递,事件的监听。
include的布局如下:
custom_home.xml

  1. <layout
  2. xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:binding="http://schemas.android.com/apk/res-auto">
  4. <data>
  5. <variable
  6. name="user"
  7. type="com.yc.bean.User" />
  8. <variable
  9. name="onImgClick "
  10. type="android.view.View.OnClickListener" />
  11. </data>
  12. <LinearLayout
  13. android:layout_width="match_parent"
  14. android:layout_height="match_parent"
  15. android:gravity="center"
  16. android:orientation="horizontal">
  17. <ImageView
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:onClick ="@{onImgClick }"
  21. android:src="@mipmap/ic_home_position"
  22. />
  23. <TextView
  24. android:layout_width="wrap_content"
  25. android:layout_height="wrap_content"
  26. android:text="@{user.name}"
  27. android:textColor="@color/colorBarText"
  28. android:textSize="12sp" />
  29. </LinearLayout>
  30. </Layout>

这里要使用对象和监听的话,就要先声明相应的variable

main.xml 中代码:

  1. <layout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:binding="http://schemas.android.com/apk/res-auto">
  3. <data>
  4. <import type="com.yc.ui.home.HomeFragmentViewModel"/>
  5. <variable
  6. name="viewModel"
  7. type="HomeFragmentViewModel" />
  8. <variable
  9. name="user"
  10. type="com.yc.bean.User"/>
  11. </data>
  12. <FrameLayout
  13. android:layout_width="match_parent"
  14. android:layout_height="match_parent"
  15. android:orientation="vertical">
  16. .......
  17. <include android:id="@+id/include"
  18. layout="@layout/custom_home"
  19. binding:onImgClick ="@{viewModel.onImgClick}"
  20. binding:user="@{user}"/>
  21. </FrameLayout>
  22. </layout>
binding:user=@{user}


这里 binding:include中变量名=@{ 传进去的监听或者实体对象}
名字必须对应不然找不到 类名也必须相同。

viewModel中方法:

  1.  public View.OnClickListener onImgClick = new View.OnClickListener() {
  2.         @Override
  3.         public void onClick(View v) {
  4.             ToastUtils.showShort("点击了头像");
  5.         }
  6.     };


————————————————
版权声明:本文为CSDN博主「云梦星河」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yunmengxinghe/article/details/107792376

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/320682
推荐阅读
相关标签