LibAdapter

LibAdapter Github Maven Central

1. 功能简介

一个更丰富和强大的RecyclerAdapter框架,可以支持:

  • 支持一个RecycleView支持多种Item样式

  • 添加头部、尾部、空页面

  • 自动加载更多等

对应GitHub为:https://github.com/CymChad/BaseRecyclerViewAdapterHelper

目前已经进行了二次封装,使用方法可以参考TestCardActivity建议后续RecycleView都使用该Adapter

2. 组件信息

引用仓库

引用仓库可以参考 组件使用 中添加依赖的部分

组件使用

implementation 'com.bihe0832.android:lib-adapter:+'

3. 组件功能

3.1. CardBaseAdapter

  • 通用的RecycleView Adapter的基类

3.2. CardBaseHolder

  • 所有卡片的Holder都继承自该类并实现对应的view查找和内容填充

3.3. CardBaseModule

  • 所有卡片对应的数据都继承自该类

4. 特殊用法(示例仅供参考)

  • 根据位置,获取对应的ViewHolder:
mRecyclerView.findViewHolderForAdapterPosition(newposition)?.let {viewHolder ->
    ZixieContext.showDebug("Test onActive:" + viewHolder.javaClass.name)
}
  • 根据位置,修改数据并且直接刷新UI:
mRecyclerView.findViewHolderForAdapterPosition(newposition)?.let {viewHolder ->
    (mAdapter.data[newposition] as CardBaseModule ).apply{

    }.let{
        (viewHolder as CardBaseHolder).initData(mAdapter.data[newposition])
    }
    }
var position: Int = -1
val title = context?.resources?.getString(R.string.settings_update_title)
for (i in mAdapter.data.indices) {
    if (mAdapter.data[i] is SettingsData && title == (mAdapter.data[i] as? SettingsData)?.mItemText) {
        position = i
        break
    }
}

if (position >= 0) {
    (mAdapter.data[position] as? SettingsData)?.apply {
        if (null != cloud && cloud.updateType > UpdateDataFromCloud.UPDATE_TYPE_HAS_NEW_JUMP) {
            mTipsText = context?.resources?.getString(R.string.settings_update_tips)
                    ?: ""
            mItemIsNew = true
        } else {
            mTipsText = ""
            mItemIsNew = false
        }
    }?.let { newData ->
        mRecyclerView?.findViewHolderForAdapterPosition(position).let { viewHolder ->
            (viewHolder as? CardBaseHolder)?.initData(newData)
        }
    }
}
Copyright © zixie all right reserved,powered by Gitbook最后修改: 2023-01-30 09:39:14

results matching ""

    No results matching ""