您当前的位置: 首页 > 
  • 0浏览

    0关注

    674博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Jetpack dataBinding(三)上手指南 RecyclerView使用DataBinding

沙漠一只雕得儿得儿 发布时间:2021-01-02 12:23:47 ,浏览量:0

RecyclerView中使用DataBinding

下面我们看下在RecycerView中的数据绑定如何使用,整体效果如图:

1、在data标签中定义variable

    

        

        


    

2、在布局文件中引用

        

在XML中定义了adapter、layoutManger、itemCount的数量、以及item的布局文件引用。

3、recyclerView内部的item布局文件也是dataBinding的形式

添加layout、data属性



    

        

        

        
    

    

        

    

可以看到在布局文件中使用了dataBinding的写法来为item添加数据,并且使用到了自定义的一个类叫BdTool.kt,因此在开始需要使用import引入进来


android:text="@{BdToolKt.getTitle(info.text)}"
android:textColor="@{info.type}"

4、adapter的写法没有什么区别

class BdAdapter : RecyclerView.Adapter() {

    private val mList = mutableListOf()

    init {
        for (i in 0..5) {
            mList.add(ItemBean(i, "艾特木 $i"))
        }
    }

    class ItVH(private val binding: ItemRvBinding) : RecyclerView.ViewHolder(binding.root) {

        fun bind(bean: ItemBean) {
            binding.info = bean
            binding.executePendingBindings()
        }
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItVH {
        return ItVH(ItemRvBinding.inflate(LayoutInflater.from(parent.context), parent, false))
    }

    override fun getItemCount() = mList.size

    override fun onBindViewHolder(holder: ItVH, position: Int) {
        holder.bind(mList[position])
    }
}

data class ItemBean(val type: Int, val text: String)

5、在activity中的使用

            adapter = BdAdapter()
            info = ItemBean(0, "include 的item")

完整项目代码

关注
打赏
1657159701
查看更多评论
立即登录/注册

微信扫码登录

0.0399s