很不错的封装,
建议可以添加这些的实现 (1)视差效果。
(2)sticky header的效果。
(3)滑动删除
(4)分组时候的伸缩栏。
btw,我把你这个项目整理进了我的这篇文章,http://www.jianshu.com/p/154891851fe2
我也添加一个吧 加载更多能否设置提前加载 如 滑动到倒数第三个的的Item的时候就开始加载更多
(4)分组时候的伸缩栏。 已经加入下个版本的迭代任务里面了。
(1)视差效果。
(2)sticky header的效果。
(3)滑动删除
这些需要修改adapter之外的东西,所以目前不考虑,以后可能会考虑,谢谢建议。
@shingohu 这个可以,我想想。
@CameloeAnthony 恩好的,多谢。
@CameloeAnthony

虽然功能已经加上了,但是我觉得这个功能的代码,一定程度上面的耦合,比如需要传入RecyclerView。以及一定程度的超出了adapter的范围,需要自定义的Layout。所以不打算添加该功能。最后还是非常感谢你的提议。
@CymChad 哈哈,谢谢你认真的去做了回复我。我会持续关注你的这个库,后期有问题会继续提出来的。顺便,给你的163发过去了一个好友请求
这个能显示瀑布流效果吗?
@baiyinshi 必须能,这是RecyclerView原生的功能!
缺少一个万能的分割线,加上以后你的库就更加完美了,支持上下左右的分割,只是提出个人想法
@xueyaolive 分割线和adapter没关系。。
感谢作者的回复
当超过3种以上类型的Item布局时,比如当第一个item=1时,一种布局,中间Item一种,最后一个item时又是一种布局,滑动时却 空指针 了
@xueyaolive 贴具体使用代码以及crash日志 我demo里面有用三种的例子,你也可以对比一下。
建议作者增加添加多个headerView和FooterView,感谢
@Airsaid #129 有人给出答案了。
我觉得要像ListView那样 支持添加多个header或者footer,可以在Adapter头部或者底部的位置用一个LinearLayout,添加的header或者footer都加到linearLayout里面去,通过这种方法实现 多个headerview 或者footerView
建议给adapter的convert方法加上position参数。有时候用的上吧
@KarnaughK 可以通过 holder.getLayoutPosition 获取
没找着下拉刷新相关的东西啊,需要自己加个SwipeRefreshLayout吗?
还有GridLayoutManager下加载提示会错位,出现在最左边的一个item。
@lolilicker 恩,下拉刷新需要配合第三方的控件,你可以使用瀑布流布局。
@CymChad 楼主问下:
1)滑动删除item,是默认从左向右滑动,有没有什么接口或者方法来使滑动方向从右向左滑动
2)当我添加了header ,滑动删除时,header 作为一个item也被删除了,需要重写什么方法来使header不被滑动删除? 【在你的博客当中有讲到添加header的一些注意事项,不知道是否满足需求】
在ItemDragAndSwipeCallback里有个setSwipeMoveFlags()方法可以设置拖拽方向,用法见ItemDragAndSwipeUseActivity.java第104行 @fWX228941
第二个问题看我最新提交,已经修正 @fWX228941
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:v1.9.1' @fWX228941
建议添加一个加载失败的尾部,点击可进行重新加载。另外,移除头部尾部建议添加remove方法,明了一点
@jituijiaqiezi 恩,多谢建议。后续会进行改进。
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:v1.9.3' 可支持多个头部和尾部
@jituijiaqiezi 新增了头部尾部的remove方法
@CymChad 建议封装Swipe出现菜单的功能,类似QQ那样的。
@suntao2yl 这个已经超出adapter的范围了,所以十分抱歉。
可以考虑添加动态设置头部布局,因为有可能有时候像banner这种,可能现在配有,但刷新有又没有了,目前是实现不了的,可以考虑添加一个boolean去控制,而不是直接将headerLayout设为null
建议添加一个加载失败的尾部,点击可进行重新加载。
expandable功能是否可以添加呢
@jituijiaqiezi 正在开发中
这个添加头部能不能像添加普通item一样只需要传入viewId呢? 因为屏幕适配,需要onCreateViewHolde中的ViewGroup,或者接口回调一个viewGroup
https://github.com/hongyangAndroid/AndroidAutoLayout
@Deemonser 你要使用的ViewGroup和头部并没有什么关系吧。而且convert(holder, item)方法中可以通过holder.itemView获取你需要的ViewGroup,也可以通过重写onCreateViewHolder()方法获取holder.itemView。
我在自定义的加载失败尾部errorFooterView添加如下代码:
errorFooterView.setOnClickListener(view -> {
adapter.removeFooterView(errorFooterView);
adapter.openLoadMore(true);
});
在请求失败的回调函数调用adapter.addFooterView(errorFooterView).
结果是第一次调用失败会添加这个erroFooterView,但是点击再次加载失败就不会添加这个errorFooterView了,不知道有什么建议
@jituijiaqiezi 请问用的是哪一个版本呢?现在的最新版是1.9.7,如果不是最新版,请先尝试更新。
@shichaohui 呀,几天没看,版本更新这么快,我试试
@shichaohui ok了,谢谢。让人越来越有兴趣了
期待滑动删除,类似QQ那样删除前提示,,和展开列表功能.大神好牛
建议封装Swipe出现菜单的功能,类似QQ那样的。今天尝试了一下午没有成功啊,
如何在convert中得到position 。
@zhaoxiuyu holder.getLayoutPosition();,或者getData().indexOf(item);
请问能跟换下拉刷新的头吗?看gif是官方的下拉刷新。
@missword2012 下拉刷新看组合任意第三方控件,不限于官方的下拉刷新。
很热情- -,star了感谢。
@RuffianZhong 第一,你可以通过在convert方法里面通过viewHolder.getView拿到你的RV,setAdapter即可,第二你说的拿到控件宽高,初始化的时候肯定是拿不到的,这不是该框架问题,如果你用原始的adapter也是一样的,和view绘制流程有关,因为需要一定的时间控件才会被度量(measure)。
@RuffianZhong 获取宽高解决方案你可以看看http://www.2cto.com/kf/201410/341592.html
大神,在item布局里面添加例如checkbox的事件,例如选中第一个然后滑动,就会出现下面的其中某一个也被选中了,再任意滑动列表,里面的数据就乱了,可能又是别的被选中了,这种情况怎么处理啊
@tangchao0106 这是复用机制的问题
继承BaseQuickAdapter,然后在convert写数据.,这个复用机制,怎么修改 啊
@tangchao0106 这不是BaseQuickAdapter的问题,你用普通的adapter都会有,你可以这样。
if(XXX){
checkbox 设置成选中
}else{
checkbox 设置成取消选中
}
@tangchao0106 #112 你可以参考一下。
@ChadCym 支持添加动态设置layout和切换layoutmanager的方法,
类似产品页面,可以切换grid和列表的显示方式
@beiliubei 这是recycleView本身的功能setLayoutManger,和adapter无关。
@Kuohui 不一定要知道总数量,我那个判断只是一种判断方式而已,你可以判断页数,或者某一个标示都可以,不要局限于demo的使用方法。
加载失败的尾部,点击可进行重新加载增加没有呢?
@XYScience 这周末 2.0上线。有这个功能。
@CymChad 很好q(≧▽≦q)
测试了下Demo,
在PullToRefreshUseActivity中初始化adapter时,如果我加上
private void initAdapter() {
mQuickAdapter = new QuickAdapter(PAGE_SIZE);
mQuickAdapter.openLoadAnimation(BaseQuickAdapter.SCALEIN);
........
滑动时,每个条目进入屏幕的时候会产生缩放进入的效果.
可是如果我滑动到底部,会加载更多,adapter会notify,那么我看到所有屏幕中展示过的条目都会产生缩放进入的效果.
所以我在RecyclerView中add了滑动的监听,如果处于滑动的状态那么展示这种动画效果,此外在数据重新填充后关闭动画效果,在原始BaseQuickAdapter中添加了一个方法来设置开启和关闭动画效果的方法.
作者是否也可以给出这样的方案,即我默认设置了动画效果,但是仅对滑动时产生,在数据重新notify后关闭,
另外我试图采用第三方的RecyclerView,如XRecyclerView,发现adapter冲突,类型不一致,
请问这个框架是否适用于其他第三方的RecyclerView,还是仅适用于原生的RecyclerView.
我使用XRecyclerView是看到有其有默认的下拉刷新和上拉加载,而且可以设置头尾刷新的动画效果.
@i25net 动画默认只执行一次,没有试过第三方RecyclerView,本adapter框架,只支持上拉加载更多,不支持下拉加载。下拉加载可以随意组合第三方库进行使用。
@i25net 我看了下你说的XRecyclerView,90+个Issues,2个月没有维护了。这样的库,我们不会进行特意的支持。
@CymChad 哦.你的回复很快吗,没关系,我也尝试的解决了些问题,我写了两个方案,一个XRecyclerView,默认实现了下拉和上拉,但是用了你框架中的动画效果,另一个方案就是直接采用系统的RecyclerView,使用你的框架adapter,显然adapter里的代码精简了许多.在activity中处理了滑动的事件.效果一样.
@i25net 👍,我每天都会看github,每天都会解决Issue,我们这个项目会持续更新。谢谢关注。
牛逼,我是来支持作者的。先用来看看效果如何
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:v2.0.0'
2.0已上线, 文档地址 :https://github.com/CymChad/BaseRecyclerViewAdapterHelper/wiki
@CymChad 有没有更新文档?
@CymChad 请问什么时候可以加上StickyHead的效果?
已经有扩展库了,结合BRVAH使用的,https://github.com/oubowu/PinnedSectionItemDecoration
添加setEmptyView的时候清除缓存,避免来回切换setEmptyView(不同的view) 显示错乱。谢谢
用pulltorefresh改造的recyclerview,一旦下拉就无法出现底部自动加载?请问作者一般下拉(可自定义下拉布局)是用哪些第三方库呢?
@axkza demo里面就有呀。
@Cenler 默认情况下拖拽是在ItemView上长按来触发,通过设置mToggleViewId,可以改为只有按在某个子View上才会触发拖拽,且可以设置为触摸该View立即开始拖拽,不需要长按
@addappcn 你的问题已经解决了,v2.0.2 具体使用方法你可以看 https://github.com/CymChad/BaseRecyclerViewAdapterHelper/blob/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/EmptyViewUseActivity.java
@CymChad 您好,还没有解决我的问题
我操作的流程是 进入一个列表 没有数据显示空的view 然后 断网 刷新 显示错误view, 然后接着再刷新显示空的view (这时候一直应该显示错误的view 不能刷新一次就切换一次view 网络错误的时候是设置的错误view 没有设置空view 为什么会来回切换呢 )再刷新 显示错误view 就这样交替着
@addappcn 解决方案已经更新。
@RuffianZhong 你可以在设置之前,拿到这个EditText对象然后设置。如果还是不可以,你可以试试 mQuickAdapter.notifyItemChanged(0);
@RuffianZhong 你要在改变的时候,去调用notify,你这个错误是,方法调用快了,还没加载完就notify了。
@CymChad ok,解决了,谢谢。
上拉加载更多结束,添加footerView提示用户没有更多了出现问题 这个解决了吗
@weavey 还没,我周末看看。
@CymChad ok 麻烦了
2.0可以和1.0兼容吗,全部替换的话,工作量有点大,想一部分一部分的替换。
@bobingxin 不能一部分一部分换,2.0改动比较大的地方:点击事件,上拉刷新,其他都没变。建议你有时间的时候换。
item有两层,控制显示隐藏后出现点击事件穿透的问题。怎么解决。
你使用的版本号是? @bobingxin
2.0.8
已收到反馈,正在着手修复中
@bobingxin compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:v2.0.9'
@CymChad 问题还存在。
@bobingxin 你好,问题已跟进 ,修复版本2.0.9没有解决你的问题吗?请详细描述这个问题好吗?
默认显示的时候点击事件没有穿透,但是当控制一次显示隐藏后,就会出现点击穿透事件。
if(shopCartSection.isEdit){
baseViewHolder.setVisible(R.id.rl_content,false);
baseViewHolder.setVisible(R.id.rl_edit,true);
}else{
baseViewHolder.setVisible(R.id.rl_content,true);
baseViewHolder.setVisible(R.id.rl_edit,false);
}
提个小问题 在添加头部的情况下 Adapter.setSpanSizeLookup 回调索引与 getItemViewType 不对应, 回调的时候减掉了 getHeaderLayoutCount 值
@bobingxin 数据层控制代码贴一下 ?我这边模拟你的情况测试一下
@Cenler 恩是的,我做过处理,你是要对herader做spansize的处理?
数据层控制代码
if(!section.isEdit) {
//编辑两字
section.isEdit = true;
}else{
//完成两字
section.isEdit = false;
}
mAdapter.notifyDataSetChanged();
布局
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/rl_content"
android:layout_width="match_parent"
android:layout_height="100dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="删除abcdcddc"
/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_alignParentRight="true"
android:layout_width="50dp"
android:layout_height="100dp"
android:gravity="center"
android:text="删除"
/>
</RelativeLayout>
</FrameLayout>
不是Header, 自己定义的布局类型. setSpanSizeLookup 回调时的索引有减去 header 但在getItemViewType里的处理逻辑并不是对应的关系, 假设获取Header下第一个布局的布局类型实际上返回的还是HeaderItemViewType @CymChad
@Cenler 我明白了,我是demo里面是itemType绑定在data里面,所以做了处理没问题,你是用adapter通过position去获取itemType所以会出现需要+1才正常的情况。
@bobingxin compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:v2.1.0'
@CymChad @AllenCoder 刚试了问题还是存在的。
@bobingxin 录制gif ,这边测试结果是没有问题的。
@CymChad 我发送了视频到你的qq邮箱,你查收一下。
@bobingxin 已收到。
@bobingxin 模拟你的案例测试,依然没有 问题,没有发生事件穿透 ,发现你的数据控制层是否写的有问题 if(!section.isEdit) { //编辑两字 section.isEdit = true; }else{ //完成两字 section.isEdit = false; } mAdapter.notifyDataSetChanged();这里不应该是一个逻辑判断 ,而是应该在两个不同的 childId 触发下 执行 onItemChildClick不同的代码
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
super.onItemChildClick(adapter, view, position);
switch (view.getId()) {
case R.id.btn1:
Log.d(TAG,"onItemChildClick: "+"btn1");
list.get(position).setEdit(false);
break;
case R.id.btn2:
Log.d(TAG,"onItemChildClick: "+"btn2");
list.get(position).setEdit(true);
break;
default:
break;
}
adapter.notifyDataSetChanged();
}
类似于这种写法,你是否将 childId 的控制事件变成了同一个了?
我发现问题所在了,原因是这的,我设置显示和隐藏的时候,设置的父控件的显示隐藏,子控件没有设置。只有设置了子控件的显示和隐藏才能避免点击事件的穿透问题。
ok,问题修复就好
@CymChad 求助,改成version2.1.0后, 安照demo写的, 加载更多功能,获取到数据后 调用 mAdapter.addData(data) 后,loadingView 还在显示,没有刷新数据。 我改成 mAdapter.getData().addAll(data);mAdapter.dataAdded(); 才能正常, 很奇怪不知道为什么。
demo里面是正常运行的。你可以检查你下你的代码和demo里面的代码是否有差异的地方
TextView priceTextView = holder.getView(R.id.price);
priceTextView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
在BaseViewHolder里面可否加个setFlags的,就是想给文字加个下划线的效果,结果还得把VIEW拿出来自己添加.要是有链式方法加也行啊. 呵呵
使用了adapter.isFirstOnly(false);
然后动画使用了BaseQuickAdapter.SCALEIN
这样在加载更多的时候,会导至页面一闪,所有显示的数据全都一闪.
我将adapter.isFirstOnly(false); 这个删掉了就好些.虽然有一点闪,但不影响我鼠标操作数据.
这个是否能改进一下的?
这个组件帮我大忙了, 网上找了不少组件,什么要嵌套Scrollview太多问题 .重新reyclyView也有问题 .
用这个慢慢摸索,一晚上搞定了我所有问题 .谢谢你们!!!
@lifetin BaseViewHolder里面可否加个setFlags?正在考虑支持让开发者扩展BaseViewHolder,这样可以避免BaseViewHolder的无限增大的情况也会更加灵活。第二个问题,你的版本号是多少?如果不是最新的版本请切换到最新的版本号,因为你说的问题,我记得我已经修复过了的。感谢你的使用。
请问,我下拉刷新列表数据,整个界面会闪一下,这个有什么方式处理没?
mAdapter.setNewData(DataServer.getSampleData(limit));
mAdapter.removeAllFooterView();
mSwipeRefreshLayout.setRefreshing(false);
这个说明没有重用刷新之前的ViewHoder视图,我看Demo里面也有这个问题
@CymChad 楼主问下:
需求:当用户手动滑动删除一条item时,在滑动伊始onItemSwipeStart()回调方法中弹出一个提示框,并制止滑动,只有用户点击确认删除按钮,滑动删除继续,否则不滑动。
问题:有没有什么方法可以有效制止滑动状态由滑动变为不滑动,用户行为可否被改变,或者用户行为能否延迟加载?。disableSwipeItem()只用来区分用户可滑动与不可滑动。
@CymChad
是最新版的呢,引用线上最新版的了.
@CymChad 楼主问下:一起提吧!
就是关于上拉记载的,有没有什么方法可以使正在上拉加载的进度条在没有数据的情况下【比如突然断网,导致的从服务器索取数据失败】停止加载并隐藏,让用户可以再次触发上拉行为。
this.mNextLoadEnable = false; //这个到时有,不过是用于区别是否可以继续滑动
this.mLoadingMoreEnable = false; //貌似没有相关的方法
@myheat 你应该是动画设置了重复显示。isFirstOnly
@fWX228941 第一个问题, https://github.com/CymChad/BaseRecyclerViewAdapterHelper/issues/297 有类似的解答
@lifetin 你可以在最新demo里面试一下,如果还是有问题,你把demo中的使用代码贴一下,我测试一下,这样便于更快的解决问题。
@CymChad 非常感谢解决了问题,不过我没有设置isFirstOnly。我测试发现是我如果mAdapter.openLoadAnimation(BaseQuickAdapter.ALPHAIN);动画就会出现闪一下,就是动画的出现与结果有闪整体的效果,所以不用这种动画就可以了
触摸itemView,都会触发所有按钮的selector,解决了很久,还是解决不了,求帮助,是我使用的问题吗? 现在是一个item布局,本身可以点击也设置了selector,这个布局还有两个button,也设置了selector, 现在点击item布局的任何地方,都会同时触发两个按钮的selector,
目前触摸的selector是基于 itemview 设计的,也就是点击了 childview 会触发 itemview 的selector,下一版本会解决您这个问题。暂时,你的处理办法可以是,基于 childview 的点击回调事件,自己控制 childview 的 selector 状态,也可以稍等后续的修复版本
能不能设置item每一项的间距大小和分割线样式 也提供几个
能添加侧滑菜单的功能嘛~~~
@LeaderChange 这个属于RecyclerView的范围,不属于adapter的范围。
@AmoyJJ 目前没有,你可以使用第三方的库。
话说上拉加载需要注意什么吗。为啥onLoadMoreRequested总是不触发、、、
@gushoubang 这个操作的完全是item布局操作,所以暂时没有这个打算。
需要设置pageSize。
openload已经设置了啊~
@AmoyJJ 你开个新的Issues贴出你的代码,我们具体讨论一下。
我想请教一下,对于拖拽的item,能否控制item不能停放在第一个位置?
备注:
比如我有一个页面9宫格展示数据,第一行第一个是特殊数据,我想要它不能移动(这个我已经实现),不能被其他item替换(这个怎么做呢?)
@RuffianZhong 参考我在#370里的回答
一个小建议:现在有一个需求,在使用Expandable多级展开的时候,每次只能展开一个,其他已经展开的要关闭,就是比如现在item1展开了,我点击item2,此时item2和item1同时处于展开状态,而我要的效果是点了item2,item1可以自动关闭,希望能提供一个api,设置这个功能。我在adapter中加了一个变量去记录上一次展开的position,但还是没法达到我要的效果。
private int alreadyExpandPos;
@Override
protected void convert(final BaseViewHolder holder, MultiItemEntity item) {
switch (holder.getItemViewType()) {
case TYPE_LEVEL_0:
final Level0Item lv0 = (Level0Item) item;
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = holder.getAdapterPosition();
if (lv0.isExpanded()) {
collapse(pos);
alreadyExpandPos = -1;
} else {
if(alreadyExpandPos != -1) {
collapse(alreadyExpandPos);
}
expand(pos, true);
alreadyExpandPos = pos;
}
}
});
break;
case TYPE_LEVEL_1:
break;
}
}
@strongmanb 记录pos是不可靠的,展开item时是会改变列表内容的,pos也就随之改变了,建议改为记录Item,即private T lastExpandItem,在需要时使用mData.indexOf(lastExpandItem)来获取pos。
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.1.8'
Add getLevel() method in IExpandable interface.
可以考虑支持 dataBinding 吗?
恩,这个已经在研发中了。 @zhanaotian
发现下拉刷新的时候 总是会闪一下 这样的体验很不好 感觉就像是用listview的时候数据集clean以后重新加载那种感觉 希望这个能不能改进下
您好~"支持让开发者扩展BaseViewHolder"进展怎样了?很期待啊。毕竟现在adapter里的自定义view只能通过getView来操作很不优雅啊。。。
这周内会上线该功能。 @KarnaughK
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.4.0' 已经支持对viewholder的扩展了。并且demo新增了databinding使用的案例
@cymChad 为什么说明文档上面还是 1.9.7
@zhaoxiuyu 这是最新的文档地址 https://github.com/CymChad/BaseRecyclerViewAdapterHelper/wiki
因为考虑到1.9.7的改动和2.0使用上很大。所以保留1.9.7的文档。
发现下拉刷新的时候 总是会闪一下 这样的体验很不好 感觉就像是用listview的时候数据集clean以后重新加载那种感觉 希望这个能不能改进下 。。。都不回我= =
@LeaderChange 你重新开个issues
@LeaderChange 我刚测试了一下,是因为demo中是因为开启了动画,openLoadAnimation,去掉就不会有闪的动画了。
那有办法达到开启了动画 但是下拉刷新的时候也不会闪一下吗
2.4.0以后构造多了一个 ViewHolder,
记得把 wiki 里的usage改成新的格式
public class YourAdapter extends BaseQuickAdapter<T, BaseViewHolder> {
public YourAdapter(int layoutResId, List data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, T item) {
}
}
@LvWind 多谢提醒,我现在就加上。
可有最新的文档,更新版本后不兼容旧的就不可用了
作者你好,使用中出现一个很奇怪的问题(1.9.7和2.4.6都会)在adapter构造器中打印数据列表是正常的,但是绑定数据的时候(convert中)就出现错误了。列表值少了一个。请问是不是使用中哪里出现错误了?
@RuffianZhong 你重新开一个Issues 把具体的使用代码和错误结果,贴出来,我这边测试一下。
有辦法在設置EmptyView後,在取消嗎?
例如我要重載,但這時候不希望有EmptyView
@tatsuyuki25 有,https://github.com/CymChad/BaseRecyclerViewAdapterHelper/issues/462 。
由于这个issues楼层太高了网速不好的情况下加载都要等很久,我关闭掉这个,重新开一个新增功能的issues,这样便于查看。
请问左滑删除功能什么时候实现呢?
@ping999 一直都可以左滑,ItemDragAndSwipeCallback里有个setSwipeMoveFlags方法详见ItemDragAndSwipeUseActivity
可组合BRVAH使用:https://github.com/anzaizai/EasySwipeMenuLayout 侧滑菜单删除
在使用瀑布流时,addFootView()方法不显示添加的底部控件,这个问题的原因是?
宇明,当数据为空的时候,设置空视图,目前的库判断逻辑是adapter.getData.size()去触发,然后设置空的view,能否添加功能,达到的效果是调用此方法,能够手动去设置空视图,因为有一些场景是空视图会根据不同状态来设置不同的空视图的view,而且此时数据不一定为空,只是没有达到某个条件,谢谢
建议添加一个加载失败时展示布局的方法,现在好多app都有加载中,加载失败,数据为空三种展示效果。
是否可以限制拖拽范围,现在是可以满屏幕拖拽转圈圈都没问题...- -产品觉得这样不太好,提了这个需求
例如只允许横向、纵向拖拽
我找到了。。。
val itemDragAndSwipeCallback = ItemDragAndSwipeCallback(mTemplateSelectedAdapter)
itemDragAndSwipeCallback.setDragMoveFlags(ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT)
列表横向排列的情况,头部的宽度不能控制,会 match_parent 整个屏幕,请问横向列表,怎么控制头部的宽度?
Most helpful comment
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:v2.0.0'
2.0已上线, 文档地址 :https://github.com/CymChad/BaseRecyclerViewAdapterHelper/wiki