無限滾軸(三) 搭配 背景更新,工作筆記,經驗筆記

前情提要
 
自從 做了無限滾軸後, 客戶提出也需要在背景更新。

當table 的內容 ,採用了無限滾軸後,內容其實是無上限的增加。

既使在背景是 讀取的API 有做換頁 讀取,當滾軸 回滾的時候 其實也很難知道 當前的陣列資料 是屬於第N頁的 API資料。 (圖1)
ex: 每往下滾 +20 ,+20,+20,+20,+20 
頁面呈現 當 視覺 看到第 50 筆的時候, 要怎麼知道 這是 3次的 更新資料?

buffer (圖1)

無限滾軸難以取得頁數 (圖2)


無限滾軸,往下抓最新一頁很容易,但是如果遇到回滾的時候,資料都已經全部渲染到畫面了,就很難去算 看到的 第 70筆 是屬於第幾頁的資料,因為無限滾軸 的特性就是一直往下長.....

實際做法

這裡有兩種做法。

  1. 一種是 去紀錄 每次頁數的第N+1 筆資料,ex: 1,11,21,31,41,51...當切換到 當前滾軸的時候 去推算他是在 第N筆的哪一區, 例如每頁有10筆, 現在 可視區在第51筆,則是 51/10=5,推算這是在第5頁。
  2. 一種是 利用 滾軸的所在位置 /每行的高度/每頁有幾筆去做推算。

當前頁數=滾軸的位置每頁高度+1




\text{當前頁數} = \left\lfloor \frac{\text{滾軸的位置}}{\text{每頁高度}} \right\rfloor + 1

心得

一開始並沒有去做 回滾後,當前的視區是隸屬哪一頁,導致自動更新永遠只更新最新一頁。

當頁面回滾的時候,背景更新抓的卻還是新的一頁,ex: 滾到第10頁,回滾到中間的位置,背景更新卻還是在第10頁。

看到的時候還真的是耐人尋味,原來就是少了這一味,山珍海味😏

無限滾軸要注意的事情很多,還有頁面渲染遺失的問題,狸貓換太子,真假變不見。







留言