前言
关于下拉刷新、上拉加载的框架现在有很多,这里奉上别人收集的一些框架(下拉刷新框架收集)。但是笔者一直还在使用 PullToRefresh 。个人觉得 PullToRefresh 使用起来还是比较简洁方便的。关于 PullToRefresh 具体的用法,这里不再赘述,这里主要分享一下笔者在使用时遇到的一个小小的坑。
问题描述
当一些可滑动的控件滑动到顶端或者底部的时候,继续滑动在魅族或者坚果手机上还会滑动一段距离并出现一片空白。如下图所示:
而在其他手机上,比如小米,则会显示一片阴影。当使用 PullToRefresh 的时候在魅族或者坚果手机上就会出现当快速滑动到底部的时候 PullToRefresh 突然滑到屏幕中间,而且不会触发加载更多的方法。
解决方法
要解决这个问题其实很简单,只需要把可滑动控件滑动到顶端或者底部时候继续滑动时出现的阴影去掉即可。为滑动的控件设置 android:overScrollMode="never"
就能把滑动的阴影去掉,也能解决 PullToRefresh 的问题。但是 PullToRefresh 设置 android:overScrollMode="never"
之后,会在右上角出现一个箭头,如图所示:
这个箭头出现与否,PullToRefresh 是由 PullToRefresh 的 mShowIndicator 属相控制的。mShowIndicator 为 false 时, PullToRefresh 右上角的箭头就回消失。所以我们只需要 将它默认设置成 false 即可。笔者比较懒,不想去每个用到 PullToRefresh 的地方都去设置,所以就去修改 PullToRefresh 的源码。修改方法:在 PullToRefreshAdapterViewBase 里有方法 handleStyledAttributes ,改成如下即可:
@Override protected void handleStyledAttributes(TypedArray a) {
// Set Show Indicator to the XML value, or default value
mShowIndicator = a.getBoolean(R.styleable.PullToRefresh_ptrShowIndicator, false);
}
结语
希望这篇文章能对遇到相同问题的同学有所帮助,下篇将介绍 PullToRefresh 的源码。