ZRefresh 小白都能看懂的代碼,二次開(kāi)發(fā)實(shí)現(xiàn)自己的界面回彈 和 下拉刷新。
仿百度外賣(mài)的下拉刷新實(shí)現(xiàn) github源碼
實(shí)現(xiàn) Android 中ListView, RecycleView, ScrollView 實(shí)現(xiàn)百度外賣(mài)下拉刷新方式,
支持下拉各種平滑滑動(dòng) 加載回彈。
簡(jiǎn)單修改刷新頭部圖片,即可成為自己的刷新框架。

Paste_Image.png
基本的目錄結(jié)構(gòu):

Paste_Image.png
基本思路:
- 基本通過(guò)分別
繼承ListView,RecycleView,ScrollView,加載頭部視圖,通過(guò)paddingTop(0,-headHeight,0,0)將頭部試圖隱藏;
- 基本的下拉刷新框架(下拉狀態(tài),回放狀態(tài),刷新?tīng)顟B(tài)等.具體移步RefListhview#onTouchEvent());RefListhview#ondispatchTouchEvent實(shí)現(xiàn)刷新中禁止滑動(dòng);
- anim中動(dòng)畫(huà)實(shí)現(xiàn)(背景的移動(dòng),輪子、太陽(yáng)旋轉(zhuǎn)等)
線性插值器需要在代碼中使用才能生效,通過(guò)值動(dòng)畫(huà)去控制ListView的平滑滑動(dòng);
- Activity實(shí)現(xiàn)onRefreshListener,實(shí)現(xiàn)onRefresh處理
請(qǐng)求邏輯。
注意點(diǎn):特殊說(shuō)明的在各Activity均有備注。
備注:
1.涉及到的anim中動(dòng)畫(huà)參考
<!--android:fromXDelta="0%p" 從百分之多少的地方開(kāi)始移動(dòng)
android:fromDegrees 起始的角度度數(shù)
android:toDegrees 結(jié)束的角度度數(shù),負(fù)數(shù)表示逆時(shí)針,正數(shù)表示順時(shí)針。如10圈則比android:fromDegrees大3600即可
android:pivotX 旋轉(zhuǎn)中心的X坐標(biāo)
android:pivotY 旋轉(zhuǎn)中心的Y坐標(biāo)
浮點(diǎn)數(shù)或是百分比。浮點(diǎn)數(shù)表示相對(duì)于Object的左邊緣,如5; 百分比表示相對(duì)于Object的左邊緣,如5%; 另一種百分比表示相對(duì)于父容器的左邊緣,如5%p; 一般設(shè)置為50%表示在Object中心
android:duration 表示從android:fromDegrees轉(zhuǎn)動(dòng)到android:toDegrees所花費(fèi)的時(shí)間,單位為毫秒。可以用來(lái)計(jì)算速度。
android:interpolator表示變化率,但不是運(yùn)行速度。一個(gè)插補(bǔ)屬性,可以將動(dòng)畫(huà)效果設(shè)置為加速,減速,反復(fù),反彈等。默認(rèn)為開(kāi)始和結(jié)束慢中間快
android:startOffset 在調(diào)用start函數(shù)之后等待開(kāi)始運(yùn)行的時(shí)間,單位為毫秒,若為10,表示10ms后開(kāi)始運(yùn)行
android:repeatCount 重復(fù)的次數(shù),默認(rèn)為0,必須是int,可以為-1表示不停止
android:repeatMode 重復(fù)的模式,默認(rèn)為restart,即重頭開(kāi)始重新運(yùn)行,可以為reverse即從結(jié)束開(kāi)始向前重新運(yùn)行。在android:repeatCount大于0或?yàn)閕nfinite時(shí)生效
android:detachWallpaper 表示是否在壁紙上運(yùn)行
android:zAdjustment 表示被animated的內(nèi)容在運(yùn)行時(shí)在z軸上的位置,默認(rèn)為normal。normal保持內(nèi)容當(dāng)前的z軸順序 top運(yùn)行時(shí)在最頂層顯示 bottom運(yùn)行時(shí)在最底層顯示
-->