• Android开发databinding和RecyclerView.ViewHolder的完美结合


    通用ViewHolder代码如下,就一个ViewHolder。。。从此不在是每个RecyclerView的Adapter编写一个ViewHolder了
    class ViewHolder<T : ViewDataBinding>(itemView: View) : RecyclerView.ViewHolder(itemView) {
    val binding = DataBindingUtil.bind<T>(itemView)!!
    }

    gradle文件开启databinding
    android {
    dataBinding{
    enabled true
    }
    }

    布局文件R.layout.e_item_message根元素以<layout></layout>开头,如下:
    <?xml version="1.0" encoding="utf-8"?>
    <layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
    </data>
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    </LinearLayout>
    </layout>

    class MessageBinder : ItemViewBinder<String, ViewHolder<EItemMessageBinding>>() {
    override fun onCreateViewHolder(inflater: LayoutInflater, parent: ViewGroup) =
    ViewHolder<EItemMessageBinding>(inflater.inflate(R.layout.e_item_message, parent, false))

    override fun onBindViewHolder(holder: ViewHolder<EItemMessageBinding>, item: String) {
    holder.binding.tv_name = "hello,world"
    }
    }

    这里使用了一个adater开源库https://github.com/drakeet/MultiType,其实不使用开源库,使用RecyclerView自带的Adapter用法也一样。
    更高级的用法还有结合layout布局里的data写binding表达式。。。
  • 相关阅读:
    通过具名 slot (插槽)来显示Dialog 的标题
    elementUI 中,table表格如何实现当某一行被点击时会触发该事件(row-click)
    switch循环
    CSS动画
    for循环
    Display
    修改页面标题前的图标
    from表单
    CSS3文字效果
    CSS颜色渐变
  • 原文地址:https://www.cnblogs.com/yongfengnice/p/11338547.html
Copyright © 2020-2023  润新知