`

[databinding]自定义Adapter

阅读更多

@BindingAdapter用于修饰方法。

一些属性需要定制绑定逻辑,一个用@BindingAdapter修饰的静态方法可以自定义属性的setter操作。

 

先分析代码:

companion object {
        @JvmStatic
        @BindingAdapter("bind:test")
        fun customAdapter(view: TextView, text: String) {
            if (text == "123"){
                view.text = "n/a"
            }else{
                view.text = "test"
            }
        }
    }

 

 必须是static,所有在kotlin中只能这样处理,不要忘记@ JvmStatic,要不会报错。

"bind:test", ‘bind’是命名空间,在layout.xml中可以忽略,也可以写成android:test

方法名随意,参数里面至少需要一个View,要不也会报参数缺失的错误。

如此这般,就可以把逻辑写在自定义的binding adapter里面

 

在layout.xml中调用:

<TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:test='@{"123"}'
            />

输出就是:"n/a" 

 

参考:

1.https://www.jianshu.com/p/a05c9735f595 

 

 

 

分享到:
评论

相关推荐

    Android支持DataBinding的RecyclerView通用Adapter

    6. **扩展性**:通用Adapter的设计通常考虑了扩展性,开发者可以根据需要添加自定义的功能,如动画效果、加载更多等。 在`DataBindingAdapter`这个文件中,我们可以看到实现这些特性的具体代码。通常,它会包含一个...

    Android 开发之dataBinding与ListView及事件

    在Adapter的Java代码中,你需要创建一个继承自`ArrayAdapter`或`BaseAdapter`的自定义Adapter,并提供必要的方法,如`getView()`,在该方法中使用`LayoutInflater.from(context).inflate(R.layout.item_layout, ...

    DataBinding在recycleview中的使用

    6. 创建自定义的RecyclerView.Adapter,使用DataBindingUtil创建ViewHolder 通过这种方式,DataBinding简化了RecyclerView与数据的绑定,让代码更加整洁,同时也提高了开发效率。在实际项目中,你可以根据需求进行...

    Android DataBinding ViewPage + Fragment 封装

    3. 设置PagerAdapter到ViewPager:`viewPager.setAdapter(adapter)`。 4. 可选:添加PageTransformer以实现自定义的滑动动画效果。 **Fragment** Fragment是Android中的一个可重用的UI组件,可以在Activity中添加...

    Android代码-all-base-adapter

    Adapter终结者,包含DataBinding,任意ViewGroup,Rv、Lv列表。写Adapter,有它就够了 Some base Adapters apply to any ViewGroup. Such as LinearLayout, ScrollView, and custom ViewGroups. Of course, ...

    recyclerView和DataBinding

    `RecyclerView`是一种高效的数据展示控件,它取代了早期的`ListView`,提供了更强大的自定义能力。而`DataBinding`是Google推出的一种数据绑定库,它简化了UI与业务逻辑之间的数据绑定过程,使代码更加清晰和易于...

    关于ListView的Item的一些定制化需求的例子

    在自定义Adapter中,重写`getCount()`返回数据源大小,`getItem(int position)`获取指定位置的数据,`getItemId(int position)`返回唯一ID,以及最重要的`getView(int position, View convertView, ViewGroup parent...

    DataBinding Demo绑定listview

    适配器通常继承自`BaseAdapter`或`ArrayAdapter`,但在这里,我们将使用Data Binding的`BindingUtil`类来创建一个扩展自`BaseAdapter`的自定义适配器。 在适配器中,我们需要创建一个包含Data Binding的布局文件,...

    Android-一些DataBinding相关的工具类

    这个工具类可能提供一个通用的Adapter实现,通过泛型和反射技术,使得一行代码就能完成不同类型项的添加和渲染。 - **便捷的数据绑定方法**:扩展DataBindingUtil,提供更简单的视图绑定方法,比如一键绑定某个对象...

    kotlin+listView+recyclerView+DataBinding

    此外,`RecyclerView.Adapter`允许开发者自定义数据绑定和视图更新,使其能够适应各种复杂的布局需求。 `DataBinding`是Android的一项功能,它允许开发者将UI组件与数据模型直接绑定,从而实现数据和视图的解耦。...

    5_listview显示复杂页面.zip_listview显示复杂页面_安卓listView

    自定义Adapter需要继承BaseAdapter或CursorAdapter,重写其中的几个关键方法: 1. getCount():返回列表项的数量。 2. getItem(int position):获取指定位置的项数据对象。 3. getItemId(int position):返回指定...

    DataBinding使用

    public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.MyViewHolder&gt; { private List&lt;User&gt; users; public MyAdapter(List&lt;User&gt; users) { this.users = users; } @NonNull @Override public ...

    开源框架android-databinding

    框架特点方面,android-databinding支持常用的数据绑定,如图片、文字、文字颜色等,并支持adapter数据的绑定,同时提供了自定义属性和自定义事件的支持。在表达式方面,它支持java方法、字段、数组的调用,但不支持...

    MVVM_Adapter.zip

    在`MVVM_Adapter.zip`中,你可能会看到一个自定义的Adapter类,这个Adapter负责创建和管理RecyclerView的每个列表项视图。Adapter需要继承`RecyclerView.Adapter`,并实现`onCreateViewHolder()`, `onBindViewHolder...

    listview中嵌套gridview

    2. 自定义Adapter,包括ListViewAdapter和GridViewAdapter。 3. ViewHolder模式的应用,提高列表滚动性能。 4. 嵌套布局的滚动同步处理。 5. 数据绑定和事件监听。 6. 可能需要的加载更多和下拉刷新功能。 通过以上...

    Tarea2RecyclerView:使用DataBinding和callBack的Recycler视图

    在Kotlin中,我们通常会创建一个继承自`RecyclerView.Adapter`的自定义适配器,用来处理数据和视图的绑定。 ### 二、DataBinding库 DataBinding是Google推出的一种数据绑定框架,它可以简化Android UI与数据模型...

    Android Data Binding 在 library module 中遇到错误及解决办法

    使用 Data Binding 也有半年多了,从最初的 setVariable,替换 findViewById,到比较高级的双向绑定,自定义 Adapter、Component,查看源码了解编译、运行流程,也算是小有成果,且没有碰到 Data Binding 本身实现上...

    应用源码之TestListViewItem.zip

    - 自定义Adapter类,继承BaseAdapter或ArrayAdapter,实现其方法如getCount()、getItem()、getItemId()以及关键的getView()。 - 在getView()中,使用LayoutInflater从XML布局文件中加载Item视图,并绑定数据到对应...

    自定义时间控件

    7. 适配器与布局管理器:如果时间控件包含了列表或网格元素,如日历视图,那么可能需要自定义`Adapter`和`LayoutManager`。适配器负责将数据转换为视图,而布局管理器决定这些视图如何在屏幕上排列。 8. 处理屏幕...

    CustomView_Mvvm_DataBinding_BindingAdapters:使用带有绑定适配器的DataBinding的Mvvm创建CustomView

    本项目“CustomView_Mvvm_DataBinding_BindingAdapters”就是这样一个示例,它演示了如何利用Kotlin语言来实现带有绑定适配器的Data Binding,以创建一个基于Mvvm的自定义视图。 首先,我们要理解MVVM架构。这是一...

Global site tag (gtag.js) - Google Analytics