DEVLOG 10.17日 關(guān)于課表滑動的一點思考
課表的主內(nèi)容TableContent是設(shè)置在一個固定的位置,用戶通過手指滑動課表查看在課表外面的部分。因此滑動課表需要確定邊界,分別是水平邊界和垂直邊界。

紅框表示顯示在屏幕中的部分,淺色藍框表示課表的背景,可以看到,有很大的一部分是在深色的背景,也就是屏幕可見范圍的外側(cè)的。
ScrollX和ScrollY深入理解
Android開發(fā)藝術(shù)探索上面寫,scrollX表示當(dāng)View的內(nèi)容和View的左邊緣的距離;scrollY表示View的內(nèi)容和View的上邊緣的距離,并且在文章中使用了一張圖來說明這個問題:

不論是View的上邊緣還是View的左邊緣,這里實際上都是指View在布局中的位置,當(dāng)我們滑動課表的內(nèi)容,我們希望能看到更多的部分,比如這樣:

滑動距離的定義
我們的手指在屏幕上滑動的move事件其實是一個一個小段的距離平湊而成,劃出屏幕外面的部分會累積到scrollX(也就是這里的scrolledX變量)。所以假定不設(shè)置滑動邊界,下一次出界的距離(scrolledX)應(yīng)該是這樣:
最大水平滑動距離
最大水平滑動距離應(yīng)該是

最大垂直滑動距離
不好定義最大垂直滑動距離,所以我目前定義的是50dp
因此整體距離計算的代碼如下:

標(biāo)簽: