Skip to content

实现仿京东筛选列表,可折叠的recyclerview, 可以动态配置是否可折叠, 折叠后剩余显示子item数量

Notifications You must be signed in to change notification settings

plumcookingwine/TreeAdapter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8c1b12e · May 6, 2019

History

19 Commits
Feb 25, 2019
Jan 28, 2019
Jan 28, 2019
Feb 25, 2019
Jan 23, 2019
Jan 23, 2019
May 6, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019

Repository files navigation

TreeAdapter Download

1、# 使用: compile ‘com.plumcookingwine.tree:TreeRvAdapter:1.0.3’

2、实体类的创建: TreeListDao是具体封装的对象, 里面有两个泛型,第一个就是父级对象,第二个就是子级集合; 其他属性为一些配置项:

// 是否可展开收起 
private boolean isEnableExpand = true; 
// 默认是否展开状态 
private boolean isExpand = false; 
// 收起状态最少展示子item数量 
private int minCount = 6;

目前支持这几种配置;以后会逐渐完善。。。

(举例)

data class FilterDao( var _ID: Int = 0, var mTitle: String = "", var mDesc: String = "", var mCheckOption: List? ) data class OptionDao( var _ID: Int = 0, var mTitle: String = "", var mDesc: String = "", var isCheck: Boolean = false )

其中FilterDao 是父级对象, OptionDao是子级对象,最后将这两个对象放到TreeListDao对象中:

	private fun initData(): MutableList<TreeListDao<FilterDao, OptionDao>> {   
		val list = mutableListOf<TreeListDao<FilterDao, OptionDao>>() 
		for (i in 0..5) { 
			val dao = TreeListDao<FilterDao, OptionDao>() 
			val filterDao = FilterDao(i, "title$i", "title$i", null) 
			val subs = mutableListOf() 
			for (j in 0..20) {
	 			val subListDao = OptionDao(j, "o${j}t${i}", "o${j}t${i}", false) 
				subs.add(subListDao) 
			}
	 		dao.groupDao = filterDao 
			dao.subList = subs if (i % 2 == 0) {
	 			dao.isMultiCheck = true } list.add(dao)
	 		} 
		return list 
	}

2、创建adapter继承自AbsTreeListAdapter,将TreeListDao传进来,重写方法:

    	// 组item的layoutId 
	public abstract int groupLayoutId(); 
	// 子item的layoutId 
	public abstract int subLayoutId(); 
	// 绑定组item数据(K 为传进来的父对象泛型) 
	public abstract void onBindGroupHolder(GroupItemViewHolder holder, K k, int groupIndex, int position); 
	// 绑定子item数据(V 为传进来的子对象泛型) 
	public abstract void onBindSubHolder(SubItemViewHolder holder, V v, int subIndex, int groupIndex, int position);

效果

效果:

实现 具体的实现原理请看文章:

About

实现仿京东筛选列表,可折叠的recyclerview, 可以动态配置是否可折叠, 折叠后剩余显示子item数量

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published