關於下拉刷新項目中所須要的功能(無痕過渡、loadingview出現方式、邊界回彈)

PullRefreshLayout

首先吐槽一下如今流行的刷新庫,一個字大,包涵我的不少集成到項目中不須要的類,也很難找到很滿意的效果(無痕過渡,回彈的效果不夠真實),因此本身本身動手豐衣足食,擼一個。
項目地址:github.com/genius158/P…
就這一個控件,能作到對全部基礎控件(包括,嵌套滑動例如RecyclerView、NestedScrollView,普通的TextView、ListView、ScrollerView、LinearLayout等)提供下拉刷新、上拉加載的支持,處理了橫向滑動衝突(例如:頂部banner的狀況) ,且實現無痕過分、邊界回彈,可設置多種loadingview的出現效果。

demo
demo

demo2
demo2

1.關於拖拽下拉刷新,loadingView出現方式(目前我的所見到的全部效果基本包涵以下)

STATE_FOLLOW
STATE_FOLLOW
STATE_PLACEHOLDER_FOLLOW
STATE_PLACEHOLDER_FOLLOW

STATE_PLACEHOLDER_CENTER
STATE_PLACEHOLDER_CENTER
STATE_CENTER
STATE_CENTER

STATE_FOLLOW_CENTER
STATE_FOLLOW_CENTER
STATE_CENTER_FOLLOW
STATE_CENTER_FOLLOW



header和footer的parentView都是FrameLayout,以上則都是經過控制Gravity來作到相關的效果

2.關於無痕過渡

支持嵌套滑動的控件都是用的嵌套滑動的相關作法,不支持的則是經過dispatchTouchEvent來作來實現滑動的實時監控。git

3.關於回彈

邊界回彈,這裏直接用的scroller來作判斷,這樣作,回彈動畫的相關數據準確性會更高github

相關文章
相關標籤/搜索