仿百度外賣(mài)的下拉刷新ListView,RecycleView,ScrollView

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




基本思路:

  1. 基本通過(guò)分別繼承ListView,RecycleView,ScrollView,加載頭部視圖,通過(guò)paddingTop(0,-headHeight,0,0)將頭部試圖隱藏;
  2. 基本的下拉刷新框架(下拉狀態(tài),回放狀態(tài),刷新?tīng)顟B(tài)等.具體移步RefListhview#onTouchEvent());RefListhview#ondispatchTouchEvent實(shí)現(xiàn)刷新中禁止滑動(dòng);
  3. anim中動(dòng)畫(huà)實(shí)現(xiàn)(背景的移動(dòng),輪子、太陽(yáng)旋轉(zhuǎn)等) 線性插值器需要在代碼中使用才能生效,通過(guò)值動(dòng)畫(huà)去控制ListView的平滑滑動(dòng);
  4. 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í)在最底層顯示
   -->

github地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容