1 Star 2 Fork 0

李晓俊 / EasyAdapter

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

EasyAdapter

An simplify and powerful version for hongyangAndroid [baseAdapter].

I remove some class, change some api, rewrite code, to be more simple, support kotlin.

Gradle

Download

implementation 'com.lxj:easyadapter:latest release'

Sample

普通使用:

adapter = object : EasyAdapter<User>(userList, R.layout.item) {
        override fun bind(holder: ViewHolder, user: User, position: Int) {
            with(holder) {
                setText(R.id.tv_name, "name: " + user.name )
                setText(R.id.tv_age, "age: " + user.age)
            }
        }
    }.apply {
        setOnItemClickListener(object : MultiItemTypeAdapter.SimpleOnItemClickListener() {
            override fun onItemClick(view: View, holder: RecyclerView.ViewHolder, position: Int) {
                super.onItemClick(view, holder, position)
                Toast.makeText(this@MainActivity, "position - $position", Toast.LENGTH_SHORT).show()
                userList.removeAt(position)
//                    notifyDataSetChanged()
                notifyItemRemoved(position + headersCount)
            }
        })
        addHeaderView(createView("Header - 1,点我在头部添加一条数据"))
        addHeaderView(createView("Header - 2,点我在头部添加一条数据"))
        addFootView(createView("Footer - 1,点我在末尾添加一条数据", true))
        addFootView(createView("Footer - 2,点我在末尾添加一条数据", true))
        recyclerView.adapter = this
    }

多条目:

multiItemTypeAdapter = MultiItemTypeAdapter<User>(userList)
    .apply {
        addItemDelegate(OneDelegate())
        addItemDelegate(TwoDelegate())
        addHeaderView(createView("Multi Header view1111"))
        addHeaderView(createView("Multi Header view22222"))
        addFootView(createView("Multi Footer view"))
        setOnItemClickListener(object : MultiItemTypeAdapter.OnItemClickListener {
            override fun onItemClick(view: View, holder: RecyclerView.ViewHolder, position: Int) {
                Toast.makeText(this@MainActivity, "position: $position", Toast.LENGTH_SHORT).show()
            }

            override fun onItemLongClick(view: View, holder: RecyclerView.ViewHolder, position: Int): Boolean {
                return false
            }
        })
        recyclerView.adapter = this
    }

internal inner class OneDelegate : ItemDelegate<User> {
    override val layoutId: Int
        get() = android.R.layout.simple_list_item_1

    override fun isThisType(item: User, position: Int): Boolean {
        return position % 2 != 0
    }
    override fun bind(holder: ViewHolder, user: User, position: Int) {
        holder.setText(android.R.id.text1, "name: " + user.name + " - " + position)
    }
}

internal inner class TwoDelegate : ItemDelegate<User> {
    override val layoutId: Int
        get() = android.R.layout.simple_list_item_1

    override fun isThisType(item: User, position: Int): Boolean {
        return position % 2 == 0
    }
    override fun bind(holder: ViewHolder, user: User, position: Int) {
        holder.setText(android.R.id.text1, "age: " + user.age)
        holder.getView<View>(android.R.id.text1).setBackgroundColor(Color.RED)
    }
}

空文件

简介

An simplify and practical version for hongyangAndroid [baseAdapter],重构了代码,并适配Kotlin。 展开 收起
Kotlin
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Kotlin
1
https://gitee.com/lxj_gitee/EasyAdapter.git
git@gitee.com:lxj_gitee/EasyAdapter.git
lxj_gitee
EasyAdapter
EasyAdapter
master

搜索帮助