溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Android應(yīng)用中添加一個下拉刷新功能

發(fā)布時間:2020-12-05 17:04:09 來源:億速云 閱讀:176 作者:Leah 欄目:移動開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)怎么在Android應(yīng)用中添加一個下拉刷新功能,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

需要給內(nèi)容加載監(jiān)聽器 

   function bindEvent() {
       document.addEventListener('touchstart', touchSatrtFunc, false);
      document.addEventListener('touchmove', touchMoveFunc, false);
       document.addEventListener('touchend', touchEndFunc, false);
    }

注意:  

 document.addEventListener("事件名稱", 函數(shù), false);
      function 某函數(shù)(event){
      // 方法執(zhí)行
    }

我們首先要獲取我們手指放在屏幕上的位置, 

 function touchSatrtFunc(evt) {
      try {
        var touch = evt.targetTouches[0]; //獲取第一個觸點(diǎn)
        var x = Number(touch.pageX); //頁面觸點(diǎn)X坐標(biāo)(起始位置)(相對于內(nèi)容)
        var y = Number(touch.pageY); //頁面觸點(diǎn)Y坐標(biāo)(起始位置)(相對于內(nèi)容)
        var y1 = Number(touch.screenY); //頁面觸點(diǎn)Y坐標(biāo)(起始位置)(相對于屏幕)
        //記錄觸點(diǎn)初始位置
        startX1 = x;
        startY1 = y;
        startSY1 = y;
      }
    }

如果我們只是iOS的話,那么我們只需要獲取相對于內(nèi)容的起始位置就可以了,但是由于android中的下拉是整體下拉.那么相對于內(nèi)容的位移就不大,這就需要相對于屏幕的位置的取值了  

 function touchMoveFunc(evt) {
      try {
        var scrollTop = $(".tui_container").scrollTop();
        var touch = evt.targetTouches[0]; //獲取第一個觸點(diǎn)
        var x = Number(touch.pageX); //頁面觸點(diǎn)X坐標(biāo)
        var y = Number(touch.pageY); //頁面觸點(diǎn)Y坐標(biāo)(移動位置)(相對于內(nèi)容)
        var y2 = Number(touch.screenY); //頁面觸點(diǎn)Y坐標(biāo)(移動位置)(相對于屏幕)
        startX2 = x;
        startY2 = y;
        startSY2 = y2;
        if(scrollTop <= 0) {
          if(startSY2 - startSY1>100) { 
            $(".loading_refresh").removeClass("disn");
            setTimeout(function(){
             window.location.reload();
           },1500)
         } 
       } 
     }
   }

手指在移動中執(zhí)行的事件,獲取到的值是不斷變化的,當(dāng)滿足相對第一個獲取到的值的偏差時執(zhí)行事件刷新,這里的iOS和Android都試用. 

function touchEndFunc(evt) {
    try {
       var top = evt.target.scrollTop;
      var touch = evt.changedTouches[0]; //獲取最后一個觸點(diǎn)
      var startX3 = Number(touch.pageX); //頁面觸點(diǎn)X坐標(biāo)
      var startY3 = Number(touch.pageY); //頁面觸點(diǎn)Y坐標(biāo)  
       var y3 = Number(touch.screenY); //頁面觸點(diǎn)Y坐標(biāo)(移動位置)(相對于屏幕)
      startSY3=y3;
      var scrollTop = $(".tui_container").scrollTop();
     }
  }

這里可以獲取的是手指離開時獲取的位置,但是由于android是整體下拉,這刷新主要根據(jù)的就是滑動滾動的scrollTop(),android無法獲取到scrollTop==0時的情況,所以拋棄在手指滑動結(jié)束后執(zhí)行的事件(我注釋掉了,就不寫了).

關(guān)于怎么在Android應(yīng)用中添加一個下拉刷新功能就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI