重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

SwipeRefreshLayout如何设置下拉刷新的距离高度

本篇内容介绍了“SwipeRefreshLayout如何设置下拉刷新的距离高度”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联公司专业网站设计、成都网站制作,集网站策划、网站设计、网站制作于一体,网站seo、网站优化、网站营销、软文发布平台等专业人才根据搜索规律编程设计,让网站在运行后,在搜索中有好的表现,专业设计制作为您带来效益的网站!让网站建设为您创造效益。

SwipeRefreshLayout 的下拉刷新距离比较短,有的时候,想要手动设置它的下拉刷新高度,如何解决呢?在网上找了好一会,居然没搜到比较满意的答复,好些都是复制粘贴。于是乎,求人不如求己,拿出API文档,大概看了下,发现了三个相关API:

SwipeRefreshLayout如何设置下拉刷新的距离高度

一、setProgressViewEndTarget方法

setProgressViewEndTarget (boolean scale, int end)方法有两个参数,
参数scale设置为true,则下拉过程,会自动缩放;参数end是下拉刷新的高度,也就是我们需要的参数,通过改变它的值,就能改变下拉刷新高度。

  • setProgressViewEndTarget (false,50)的效果图
    SwipeRefreshLayout如何设置下拉刷新的距离高度

  • setProgressViewEndTarget (true,100)的效果图
    SwipeRefreshLayout如何设置下拉刷新的距离高度

  • swipeRefreshLayout.setProgressViewOffset(false,100,200)的效果图

三、setDistanceToTriggerSync方法

这个方法主要是用来设置手指在屏幕下拉多少距离才会触发SwipeRefreshLayout控件的刷新动画效果;setDistanceToTriggerSync(int distance)参数的distance就是手指下拉的具体高度值。查看SwipeRefreshLayout的源码我们会发现如下代码:

 
  1.  

    /**  

  2.  

    * Set the distance to trigger a sync in dips  

  3.  

    *  

  4.  

    * @param distance  

  5.  

    */  

  6.  

    public void setDistanceToTriggerSync(int distance) {  

  7.  

    mTotalDragDistance = distance;  

  8.  

    }    

setDistanceToTriggerSync方法最终是把具体高度distance赋值给了mTotalDragDistance ,该变量的单词意思是 总的拖拽距离 ,也就是我们所说触发刷新动画时手指需要下拉的距离。

 
  1.  

    //默认触发动画的下拉距离  

  2.  

    private static final int DEFAULT_CIRCLE_TARGET = 64;  

  3.  

     

  4.  

    mSpinnerFinalOffset = DEFAULT_CIRCLE_TARGET * metrics.density;  

  5.  

    mTotalDragDistance = mSpinnerFinalOffset;  

继续看源码,我们会发现,mTotalDragDistance默认等于mSpinnerFinalOffset,而mSpinnerFinalOffset等于64乘以当前分辨率值,也就是说,默认情况下,要触发下拉刷新动画效果,手指下拉距离为64dp。

OK,要说的也就这么多了,利用这三个方法,就可以方便的设置SwipeRefreshLayout 的下拉刷新的距离,和刷新动画所在的位置了!

“SwipeRefreshLayout如何设置下拉刷新的距离高度”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


本文名称:SwipeRefreshLayout如何设置下拉刷新的距离高度
标题链接:http://cqcxhl.cn/article/jihhhc.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP