CymChad / BaseRecyclerViewAdapterHelper

BRVAH:Powerful and flexible RecyclerAdapter
http://www.recyclerview.org/
MIT License
24.29k stars 5.15k forks source link

功能添加 #77

Closed ProgrammerAnthony closed 7 years ago

ProgrammerAnthony commented 8 years ago

很不错的封装, 建议可以添加这些的实现 (1)视差效果。 (2)sticky header的效果。 (3)滑动删除 (4)分组时候的伸缩栏。

btw,我把你这个项目整理进了我的这篇文章,http://www.jianshu.com/p/154891851fe2

shingohu commented 8 years ago

我也添加一个吧 加载更多能否设置提前加载 如 滑动到倒数第三个的的Item的时候就开始加载更多

CymChad commented 8 years ago

(4)分组时候的伸缩栏。 已经加入下个版本的迭代任务里面了。 (1)视差效果。 (2)sticky header的效果。 (3)滑动删除 这些需要修改adapter之外的东西,所以目前不考虑,以后可能会考虑,谢谢建议。

CymChad commented 8 years ago

@shingohu 这个可以,我想想。

ProgrammerAnthony commented 8 years ago

https://github.com/kanytu/android-parallax-recyclerview 参考一下里面的这个视差效果吧 , https://github.com/kanytu/android-parallax-recyclerview/blob/master/library/src/main/java/com/poliveira/parallaxrecyclerview/ParallaxRecyclerAdapter.java

可以用你的方法封装一下 。哈哈 ,

CymChad commented 8 years ago

@CameloeAnthony 恩好的,多谢。

CymChad commented 8 years ago

@CameloeAnthony 虽然功能已经加上了,但是我觉得这个功能的代码,一定程度上面的耦合,比如需要传入RecyclerView。以及一定程度的超出了adapter的范围,需要自定义的Layout。所以不打算添加该功能。最后还是非常感谢你的提议。

ProgrammerAnthony commented 8 years ago

@CymChad 哈哈,谢谢你认真的去做了回复我。我会持续关注你的这个库,后期有问题会继续提出来的。顺便,给你的163发过去了一个好友请求

baiyinshi commented 8 years ago

这个能显示瀑布流效果吗?

CymChad commented 8 years ago

@baiyinshi 必须能,这是RecyclerView原生的功能!

xueyaolive commented 8 years ago

缺少一个万能的分割线,加上以后你的库就更加完美了,支持上下左右的分割,只是提出个人想法

CymChad commented 8 years ago

@xueyaolive 分割线和adapter没关系。。

xueyaolive commented 8 years ago

感谢作者的回复

xueyaolive commented 8 years ago

当超过3种以上类型的Item布局时,比如当第一个item=1时,一种布局,中间Item一种,最后一个item时又是一种布局,滑动时却 空指针 了

CymChad commented 8 years ago

@xueyaolive 贴具体使用代码以及crash日志 我demo里面有用三种的例子,你也可以对比一下。

Airsaid commented 8 years ago

建议作者增加添加多个headerView和FooterView,感谢

CymChad commented 8 years ago

@Airsaid #129 有人给出答案了。

keluokeda commented 8 years ago

我觉得要像ListView那样 支持添加多个header或者footer,可以在Adapter头部或者底部的位置用一个LinearLayout,添加的header或者footer都加到linearLayout里面去,通过这种方法实现 多个headerview 或者footerView

KarnaughK commented 8 years ago

建议给adapter的convert方法加上position参数。有时候用的上吧

CymChad commented 8 years ago

@KarnaughK 可以通过 holder.getLayoutPosition 获取

zaer22 commented 8 years ago

没找着下拉刷新相关的东西啊,需要自己加个SwipeRefreshLayout吗? 还有GridLayoutManager下加载提示会错位,出现在最左边的一个item。

CymChad commented 8 years ago

@lolilicker 恩,下拉刷新需要配合第三方的控件,你可以使用瀑布流布局。

fWX228941 commented 8 years ago

@CymChad 楼主问下: 1)滑动删除item,是默认从左向右滑动,有没有什么接口或者方法来使滑动方向从右向左滑动 2)当我添加了header ,滑动删除时,header 作为一个item也被删除了,需要重写什么方法来使header不被滑动删除? 【在你的博客当中有讲到添加header的一些注意事项,不知道是否满足需求】

elfman commented 8 years ago

ItemDragAndSwipeCallback里有个setSwipeMoveFlags()方法可以设置拖拽方向,用法见ItemDragAndSwipeUseActivity.java第104行 @fWX228941

elfman commented 8 years ago

第二个问题看我最新提交,已经修正 @fWX228941

CymChad commented 8 years ago

compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:v1.9.1' @fWX228941

jituijiaqiezi commented 8 years ago

建议添加一个加载失败的尾部,点击可进行重新加载。另外,移除头部尾部建议添加remove方法,明了一点

CymChad commented 8 years ago

@jituijiaqiezi 恩,多谢建议。后续会进行改进。

CymChad commented 8 years ago

compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:v1.9.3' 可支持多个头部和尾部

CymChad commented 8 years ago

@jituijiaqiezi 新增了头部尾部的remove方法

suntao2yl commented 8 years ago

@CymChad 建议封装Swipe出现菜单的功能,类似QQ那样的。

CymChad commented 8 years ago

@suntao2yl 这个已经超出adapter的范围了,所以十分抱歉。

JackLiaoJH commented 8 years ago

可以考虑添加动态设置头部布局,因为有可能有时候像banner这种,可能现在配有,但刷新有又没有了,目前是实现不了的,可以考虑添加一个boolean去控制,而不是直接将headerLayout设为null

bobingxin commented 8 years ago

建议添加一个加载失败的尾部,点击可进行重新加载。

jituijiaqiezi commented 8 years ago

expandable功能是否可以添加呢

CymChad commented 8 years ago

@jituijiaqiezi 正在开发中

Deemonser commented 8 years ago

这个添加头部能不能像添加普通item一样只需要传入viewId呢? 因为屏幕适配,需要onCreateViewHolde中的ViewGroup,或者接口回调一个viewGroup https://github.com/hongyangAndroid/AndroidAutoLayout

shichaohui commented 8 years ago

@Deemonser 你要使用的ViewGroup和头部并没有什么关系吧。而且convert(holder, item)方法中可以通过holder.itemView获取你需要的ViewGroup,也可以通过重写onCreateViewHolder()方法获取holder.itemView。

jituijiaqiezi commented 8 years ago

我在自定义的加载失败尾部errorFooterView添加如下代码: errorFooterView.setOnClickListener(view -> { adapter.removeFooterView(errorFooterView); adapter.openLoadMore(true); }); 在请求失败的回调函数调用adapter.addFooterView(errorFooterView). 结果是第一次调用失败会添加这个erroFooterView,但是点击再次加载失败就不会添加这个errorFooterView了,不知道有什么建议

shichaohui commented 8 years ago

@jituijiaqiezi 请问用的是哪一个版本呢?现在的最新版是1.9.7,如果不是最新版,请先尝试更新。

jituijiaqiezi commented 8 years ago

@shichaohui 呀,几天没看,版本更新这么快,我试试

jituijiaqiezi commented 8 years ago

@shichaohui ok了,谢谢。让人越来越有兴趣了

tangchao0106 commented 8 years ago

期待滑动删除,类似QQ那样删除前提示,,和展开列表功能.大神好牛

tangchao0106 commented 8 years ago

建议封装Swipe出现菜单的功能,类似QQ那样的。今天尝试了一下午没有成功啊,

zhaoxiuyu commented 8 years ago

如何在convert中得到position 。

shichaohui commented 8 years ago

@zhaoxiuyu holder.getLayoutPosition();,或者getData().indexOf(item);

missword2012 commented 8 years ago

请问能跟换下拉刷新的头吗?看gif是官方的下拉刷新。

CymChad commented 8 years ago

@missword2012 下拉刷新看组合任意第三方控件,不限于官方的下拉刷新。

missword2012 commented 8 years ago

很热情- -,star了感谢。

CymChad commented 8 years ago

@RuffianZhong 第一,你可以通过在convert方法里面通过viewHolder.getView拿到你的RV,setAdapter即可,第二你说的拿到控件宽高,初始化的时候肯定是拿不到的,这不是该框架问题,如果你用原始的adapter也是一样的,和view绘制流程有关,因为需要一定的时间控件才会被度量(measure)。

CymChad commented 8 years ago

@RuffianZhong 获取宽高解决方案你可以看看http://www.2cto.com/kf/201410/341592.html