本篇内容介绍了“SwipeRefreshLayout如何设置下拉刷新的距离高度”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
SwipeRefreshLayout 的下拉刷新距离比较短,有的时候,想要手动设置它的下拉刷新高度,如何解决呢?在网上找了好一会,居然没搜到比较满意的答复,好些都是复制粘贴。于是乎,求人不如求己,拿出API文档,大概看了下,发现了三个相关API:
setProgressViewEndTarget (boolean scale, int end)方法有两个参数,
参数scale设置为true,则下拉过程,会自动缩放;参数end是下拉刷新的高度,也就是我们需要的参数,通过改变它的值,就能改变下拉刷新高度。
setProgressViewEndTarget (false,50)的效果图
setProgressViewEndTarget (true,100)的效果图
swipeRefreshLayout.setProgressViewOffset(false,100,200)的效果图
这个方法主要是用来设置手指在屏幕下拉多少距离才会触发SwipeRefreshLayout控件的刷新动画效果;setDistanceToTriggerSync(int distance)参数的distance就是手指下拉的具体高度值。查看SwipeRefreshLayout的源码我们会发现如下代码:
/**
* Set the distance to trigger a sync in dips
*
* @param distance
*/
public void setDistanceToTriggerSync(int distance) {
mTotalDragDistance = distance;
}
setDistanceToTriggerSync方法最终是把具体高度distance赋值给了mTotalDragDistance ,该变量的单词意思是 总的拖拽距离 ,也就是我们所说触发刷新动画时手指需要下拉的距离。
//默认触发动画的下拉距离
private static final int DEFAULT_CIRCLE_TARGET = 64;
mSpinnerFinalOffset = DEFAULT_CIRCLE_TARGET * metrics.density;
mTotalDragDistance = mSpinnerFinalOffset;
继续看源码,我们会发现,mTotalDragDistance默认等于mSpinnerFinalOffset,而mSpinnerFinalOffset等于64乘以当前分辨率值,也就是说,默认情况下,要触发下拉刷新动画效果,手指下拉距离为64dp。
OK,要说的也就这么多了,利用这三个方法,就可以方便的设置SwipeRefreshLayout 的下拉刷新的距离,和刷新动画所在的位置了!
“SwipeRefreshLayout如何设置下拉刷新的距离高度”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。