Android View Scroller

來源:互聯網
上載者:User

標籤:android   style   blog   ar   color   sp   on   div   art   

在繼承View控制項重寫控制項功能時,時常會對控制項內容進行滾動,那麼就需要調用View內容移動的兩個方法之一:
View.scrollBy(int x, int y) --> 內容平滑地滾動到目標座標(可看的移動效果)
View.scrollTo(int x, int y) --> 內容馬上滾動到目標座標(瞬移!?)


當滾動時,還需要判斷滾動的內容是否超過顯示界限,此時要調用到兩個方法來擷取滾動的距離(這裡需要注意的是,View是以左上方為座標原點(0,0)),
方法:View.getScrollX() -->擷取水平座標移動距離
      View.getScrollY() -->擷取垂直座標移動距離
如:
1.手指向右滑動,而內容向左滾動,View.getScrollX()得到的是負值
2.手指向左滑動,而內容向右滾動,View.getScrollX()得到的是正值
3.手指向下滑動,而內容向上滾動,View.getScrollY()得到的是負值
4.手指向上滑動,而內容向下滾動,View.getScrollY()得到的是正值
簡而言之,就是手指滑動的方向和內容滾動的方向相反,參考ListView 和 HorizontalScrollView 的介面效果便知
在擷取到值後,可以通過(new Scroller()).startScroll(int startX, int startY, int dx, int dy)方法將內容滾動到適當的位置
在View的重寫方法中進行Scroller滾動響應:

@Override    public void computeScroll() {        if (scroller.computeScrollOffset()) {            // 調用這個下面的條件是由於scroller調用了滑動從而使它激發            scrollTo(scroller.getCurrX(), scroller.getCurrY());            invalidate();            return;        }        super.computeScroll();    }

 



   

Android View Scroller

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.