您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“SwipeRefreshLayout如何設(shè)置下拉刷新的距離高度”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
SwipeRefreshLayout 的下拉刷新距離比較短,有的時候,想要手動設(shè)置它的下拉刷新高度,如何解決呢?在網(wǎng)上找了好一會,居然沒搜到比較滿意的答復(fù),好些都是復(fù)制粘貼。于是乎,求人不如求己,拿出API文檔,大概看了下,發(fā)現(xiàn)了三個相關(guān)API:
setProgressViewEndTarget (boolean scale, int end)方法有兩個參數(shù),
參數(shù)scale設(shè)置為true,則下拉過程,會自動縮放;參數(shù)end是下拉刷新的高度,也就是我們需要的參數(shù),通過改變它的值,就能改變下拉刷新高度。
setProgressViewEndTarget (false,50)的效果圖
setProgressViewEndTarget (true,100)的效果圖
swipeRefreshLayout.setProgressViewOffset(false,100,200)的效果圖
這個方法主要是用來設(shè)置手指在屏幕下拉多少距離才會觸發(fā)SwipeRefreshLayout控件的刷新動畫效果;setDistanceToTriggerSync(int distance)參數(shù)的distance就是手指下拉的具體高度值。查看SwipeRefreshLayout的源碼我們會發(fā)現(xiàn)如下代碼:
/**
* Set the distance to trigger a sync in dips
*
* @param distance
*/
public void setDistanceToTriggerSync(int distance) {
mTotalDragDistance = distance;
}
setDistanceToTriggerSync方法最終是把具體高度distance賦值給了mTotalDragDistance ,該變量的單詞意思是 總的拖拽距離 ,也就是我們所說觸發(fā)刷新動畫時手指需要下拉的距離。
//默認觸發(fā)動畫的下拉距離
private static final int DEFAULT_CIRCLE_TARGET = 64;
mSpinnerFinalOffset = DEFAULT_CIRCLE_TARGET * metrics.density;
mTotalDragDistance = mSpinnerFinalOffset;
繼續(xù)看源碼,我們會發(fā)現(xiàn),mTotalDragDistance默認等于mSpinnerFinalOffset,而mSpinnerFinalOffset等于64乘以當前分辨率值,也就是說,默認情況下,要觸發(fā)下拉刷新動畫效果,手指下拉距離為64dp。
OK,要說的也就這么多了,利用這三個方法,就可以方便的設(shè)置SwipeRefreshLayout 的下拉刷新的距離,和刷新動畫所在的位置了!
“SwipeRefreshLayout如何設(shè)置下拉刷新的距離高度”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。