SmartRefreshLayout icon indicating copy to clipboard operation
SmartRefreshLayout copied to clipboard

作者:建议收集

Open scwang90 opened this issue 8 years ago • 64 comments
trafficstars

如果你对本库有什么功能建议可以在这里回复,点赞数高的回复将会被加入开发计划

以下内容会被直接删除

1.在这里问问题

2.建议已存在的功能

scwang90 avatar Jul 20 '17 13:07 scwang90

希望能加上上拉加载更多的时候,如果没有更多数据了,就一直显示加载的布局,并且显示没有更多了,这样的功能真的是非常常见,非常刚需的,依靠其他的baseadapter库去实现很烦人的,而在这个库里面应该实现起来要简单的多,谢谢,辛苦了

作者回复:该功能已经有了,请不要提出已有功能

refreshLayout.setLoadmoreFinish(true); //V1.0.0(1.0.5 删除)
or
refreshLayout.setNoMoreData(true);//V1.0.5
or
refreshLayout.finishLoadmoreWithNoMoreData();//V1.0.4
or
refreshLayout.finishLoadMoreWithNoMoreData();//V1.1.0

zxyaust avatar Jul 21 '17 02:07 zxyaust

感谢开源灵活性这么好的库,只是希望可以添加类似淘宝二楼的二级刷新功能,目前的RefreshState还不能完全满足需求

作者:看到并喜欢的同学给本楼点赞!点赞数量决定是否开发本功能!

作者:2017-12-6 开发完毕,版本必须 1.0.4-2 以上,参考demo-淘宝二楼页面

Carecluse avatar Jul 27 '17 09:07 Carecluse

横向刷新,比如 qq 20170809220354 左拉刷新或者右拉刷新.

作者:水平左右拉动功能,并不是标准的刷新功能,应用情况也不多,这个功能不会被集成在库中。如果项目中有这样的需求,建议使用github的其他库解决

推荐:linuxjava/HorizontalRefreshLayout 29995270/HorizontalRefreshLayout

作者:最近(2019-2-13)我突发奇想,想到了 smart 旋转 90度, content 旋转 -90 度的方法来实现,这样就只需要做代码适配,不需要重新构建逻辑,并且完美兼容原有所有的 Header 和 Footer。所以又开源了一个 水平刷新库 SmartRefreshHorizontal 欢迎大家多多 star

tanranran avatar Aug 09 '17 14:08 tanranran

请增加可定制的下来刷新功能:根据下拉高度,决定头部gif当前的帧数。 比如,一个圆形进度条,根据下拉高度,显示进度条的百分比。 我可能说的不是很清楚,表达能力有限,这种效果很多应用都有,比如YY的下拉刷新效果。

作者回复:自定义 Header 功能已经有了哈,请不要提出已有功能!

scrylove avatar Nov 16 '17 02:11 scrylove

在下拉刷新状态下,列表内容可以滑动,但是header不能跟随滑动,这种情况比较符合逻辑,请考虑。谢谢

作者回复:你说的这个逻辑是老式的刷新啦,效果看起来死板,现在的刷新都是Header跟随列表一起滚动的,github 上多个有名的 刷新库都是这样的。本建议不会被采纳。

abings avatar Nov 19 '17 16:11 abings

嵌套布局时,如果有上拉的话,顶部布局会跟随滚动,希望可以提供不让布局移动的方法。

作者回复:这个功能已经有了,参考demo-微博列表,请不要提出已有功能

zhangyalong123feiyu avatar Dec 06 '17 03:12 zhangyalong123feiyu

在下拉刷新与上拉刷新时可能网络问题导致时间长,用户滑动列表查看其它数据后,在进行下拉刷新或上拉加载更多时没有粘性与拉动的效果,这个可以优化下吗

作者回复:正在加载或者刷新的时候效果就是故意这么设计的,不是bug,不存在再优化的问题

wangdakuan avatar Dec 07 '17 07:12 wangdakuan

可以做个类是天猫商品搜索,上拉加载更多时预加载的功能吗

作者回复:自己的事情自己做哈,不要什么都依赖别人,这些和刷新无关的东西大家就不用再提了

652028815 avatar Dec 18 '17 09:12 652028815

希望可以添加结束刷新的功能,并且结束刷新之后可以马上启动刷新。大致的期望是如下代码可以正常工作:

autoRefresh();
finishRefresh();
autoRefresh();

目前的效果是:第二次刷新操作并不会执行。看了下代码可能是finishRefresh内部使用View.post()造成的。

作者回复:不管是 autoRefresh 还是 finishRefresh 都有一个动画过程,需要时间,不可能立即完成的,而且你这样的应用场景实在想不到什么情况会用到,像这样特别的功能你真的必要,建议自己重写SmartRefreshLayout 的子类来实现,作者是不会为了小众需求而去动整体设计的

a3349384 avatar Dec 20 '17 05:12 a3349384

setOnMultiPurposeListener 这个监听需要复写10个方法,代码太多了 建议是需要复写什么方法,使用者自己去复写,不用全部

最直观的例子: 很多类只有下拉刷新,每个类需要处理的逻辑不同,那每个类都需要重写不需要的 foot 相关监听 代码多很多

作者回复:本来就不用全部啊,使用方法看demo

xiaomsh avatar Dec 26 '17 09:12 xiaomsh

可以实现未滚动到最底部 自动加载更多么?就是离滚动底部 还有断距离 加载更多

作者回复:建议自己实现

guoyongxing avatar Jan 07 '18 12:01 guoyongxing

建议 readme 中 将“简单用例” 放在效果演示上面 合适的位置 这样就不用每次忘下翻半天看有没有新版了

作者回复:这个顺序并不是随意决定的,之前早就经过慎重考虑过的,不会改变

AndSync avatar Jan 23 '18 06:01 AndSync

建议不要在上拉回弹的时候拦截点击事件,这样回弹之后没有完成时布局中的点击事件全部失效

作者回复:然而并没有拦截,请使用最新版本

image 上面是1.0.4-7中的SmartRefreshLayout 中的 dispatchTouchEvent方法,在action up 和action cancel时如果判断是松手就会return true拦截点击事件

作者回复:对于 action up 和action cancel 的拦截,最初是打算在 mIsBeingDragged=true 的时候会拦截,可能后来多次改动忘记了初衷, 1.0.5 版本已经更新算法,只有 mIsBeingDragged=true时会拦截

z2058550226 avatar Jan 24 '18 06:01 z2058550226

可不可以设置触发下拉刷新的 的条件

作者回复:可以自定义 canRefrsh,详情参考 功能自定义滚动边界

shangqianglong avatar Jan 31 '18 09:01 shangqianglong

希望能够把 经典 的类型剥离出来,SmartRefresh功能越来越多,但是也越来越臃肿了,一个刷新的控件都达到了9M多的apk。

作者:Smart 的大小只有 139KB 而已,不要随便甩锅

shengjunhu avatar Feb 07 '18 11:02 shengjunhu

有没有考虑多加几种上拉加载的样式?

作者:

1.本库的上拉加载体验并不好,不打算在上面多下功夫,建议使用Adapter实现的上拉加载功能

推荐:https://github.com/CymChad/BaseRecyclerViewAdapterHelper

2.非要使用本库的功能,又想使用各种样式的footer,可以看看这个文章

链接:https://www.jianshu.com/p/e4e8a41a75b6

isliuqihang avatar Feb 09 '18 01:02 isliuqihang

添加有滑动删除按钮的功能~

作者:和刷新无关的功能是不会添加的

pcxjsl avatar Mar 07 '18 09:03 pcxjsl

可否添加一个状态为加载完成状态。底部出现一行字为加载完成

作者:有了,去看文档,noMoreData

abc8312111 avatar Mar 21 '18 01:03 abc8312111

我觉得可以写个全局代码配置,比如我想他能自动加载更多,没有更多的界面是自动显示fotter 这样的设置,不想每一个都要写。

作者:1.0.0 版本早就有啦,看文档和常见问题和demo

HouChengYue avatar May 02 '18 06:05 HouChengYue

@Override
public void onViewRemoved(View child) {
    super.onViewRemoved(child);
}

@Override
public void onViewAdded(View child) {
    super.onViewAdded(child);
}

建议对这两个 函数做下处理。比如在配合 LoadSir 使用时,可能导致界面不显示。

wangkunlin avatar Dec 12 '18 08:12 wangkunlin

建议适配多语言。

shangxiazuoyou avatar Dec 28 '18 02:12 shangxiazuoyou

希望有kotlin的版本。。。

287138531 avatar Jan 18 '19 02:01 287138531

你好 ,如果上拉加载到没有数据了,你这里现在是显示没有更多数据,如何替换成一张图片呢?

lgj860123 avatar Feb 21 '19 06:02 lgj860123

建议支持下996icu协议

inchtime avatar Apr 01 '19 03:04 inchtime

finishRefresh()方法中建议不要加Delay操作,这样如果第一页数据就需要设置noMoreData的话设置不上,因为每次设置完noMoreData都会被finishRefresh方法给重置掉,因为finishRefresh方法在刷新成功后会调用resetNoMoreData方法,除非手动传入参数finishRefresh(false)但是这样用起来有点奇怪。

或者finishRefresh方法中加入noMoreData参数控制是否需要resetNoMoreData

作者:最开始设计的时候 finishRefresh 是不会重置noMoreData 的,需要自己调用 resetNoMoreData,但是后来很多用户反应,如果刷新成功 finishRefresh 应该具有重置功能,而不要用户去手动调用 resetNoMoreData。后来考虑许久决定给 finishRefresh 加上智能的判断,如果成功就重置。但是这样又和 resetNoMoreData 冲突。所以最后决定添加 finishRefreshWithNoMoreData 接口来弥补。所以 smart 建议用户刷新的时候 使用 finishRefresh 来重置或者 finishRefreshWithNoMoreData 来开启 NoMoreData。由于Smart 的内容识别功能 要求 delay 必须存在,不能去掉。

Tenker avatar Apr 01 '19 12:04 Tenker

希望可以添加结束刷新的功能,并且结束刷新之后可以马上启动刷新。大致的期望是如下代码可以正常工作:

autoRefresh();
finishRefresh();
autoRefresh();

目前的效果是:第二次刷新操作并不会执行。看了下代码可能是finishRefresh内部使用View.post()造成的。

作者回复:不管是 autoRefresh 还是 finishRefresh 都有一个动画过程,需要时间,不可能立即完成的,而且你这样的应用场景实在想不到什么情况会用到,像这样特别的功能你真的必要,建议自己重写SmartRefreshLayout 的子类来实现,作者是不会为了小众需求而去动整体设计的

我现在遇到的就是结束加载更多 立马调用刷新就不行,列表上面有个筛选 当在结束加载更多的时候就不能立马调用刷新,这逻辑是有问题的

tianminggh avatar Jun 06 '19 02:06 tianminggh

作者是否考虑过把这个库迁移到flutter平台上

typ0520 avatar Jul 19 '19 06:07 typ0520

加载失败后,”加载失败,点击重试“常驻底部,点击文案后重新loadMore。产品需求,呜呜呜,可否支持,或者是否已有功能可以支持

biyunhuang avatar Aug 13 '19 12:08 biyunhuang

setLoadmoreFinishedfinishLoadmore方法的命名有迷惑性,建议更换。

作者:setLoadmoreFinished 两年前都已经删除了,你还在用?

4332weizi avatar Aug 16 '19 05:08 4332weizi

不好意思,项目里面用的老版本,我刚发现。已升级,多谢!

4332weizi avatar Aug 20 '19 02:08 4332weizi