您好,登錄后才能下訂單哦!
本篇內容介紹了“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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。