Closed ProgrammerAnthony closed 8 years ago
大神,在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
很不错的封装, 建议可以添加这些的实现 (1)视差效果。 (2)sticky header的效果。 (3)滑动删除 (4)分组时候的伸缩栏。
btw,我把你这个项目整理进了我的这篇文章,http://www.jianshu.com/p/154891851fe2