最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android中ScrollView實現(xiàn)滑動距離監(jiān)聽器的方法

 更新時間:2016年10月10日 14:15:04   投稿:daisy  
ScrollView相信對每位Android開發(fā)者們來說都不陌生,所以這篇文章給大家主要介紹了Android中ScrollView實現(xiàn)滑動距離監(jiān)聽器的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。

前言

眾所周知ScrollView是我們經(jīng)常使用的一個UI控件,也許你在使用ScrollView的過程中會發(fā)現(xiàn),當你想監(jiān)聽ScrollView滑動的距離時卻沒有合適的監(jiān)聽器!當然在API 23中有setOnScrollChangeListener(View.OnScrollChangeListener l)可以使用,但是并不兼容低版本的API。那怎么辦呢?只好重寫ScrollView來實現(xiàn)對滑動距離的監(jiān)聽了。

話不多說,直接上代碼:

public class MyScrollView extends ScrollView {

 private OnScrollListener listener;

 /**
 * 設(shè)置滑動距離監(jiān)聽器
 */
 public void setOnScrollListener(OnScrollListener listener) {
  this.listener = listener;
 }

 public MyScrollView(Context context) {
  super(context);
 }

 public MyScrollView(Context context, AttributeSet attrs) {
  super(context, attrs);
 }

 public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
  super(context, attrs, defStyleAttr);
 }

 // 滑動距離監(jiān)聽器
 public interface OnScrollListener{

 /**
 * 在滑動的時候調(diào)用,scrollY為已滑動的距離
 */
  void onScroll(int scrollY);
 }

 @Override
 public void computeScroll() {
  super.computeScroll();
  if(listener!=null){
   listener.onScroll(getScrollY());
  }
 }
}

上面重寫的MyScrollView是在computeScroll()實現(xiàn)監(jiān)聽,因為ScrollView內(nèi)部是通過Scroller來實現(xiàn)的,當滑動的時候會去調(diào)用computeScroll()方法,從而達到監(jiān)聽的效果。

當然還有另一種方法,就是在onScrollChanged(int l, int t, int oldl, int oldt)去監(jiān)聽,最后的效果是一樣的:

public class MyScrollView extends ScrollView {

 private OnScrollListener listener;

 public void setOnScrollListener(OnScrollListener listener) {
  this.listener = listener;
 }

 public MyScrollView(Context context) {
  super(context);
 }

 public MyScrollView(Context context, AttributeSet attrs) {
  super(context, attrs);
 }

 public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
  super(context, attrs, defStyleAttr);
 }

 public interface OnScrollListener{
  void onScroll(int scrollY);
 }

  @Override 
 protected void onScrollChanged(int l, int t, int oldl, int oldt) { 
  super.onScrollChanged(l, t, oldl, oldt); 
  if(listener != null){ 
   listener.onScroll(t); 
  } 
 } 
}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望能對各位Android開發(fā)者們有所幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • Android Handler,Message,MessageQueue,Loper源碼解析詳解

    Android Handler,Message,MessageQueue,Loper源碼解析詳解

    這篇文章主要介紹了Android Handler,Message,MessageQueue,Loper源碼解析詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Android實現(xiàn)圖片在屏幕內(nèi)縮放和移動效果

    Android實現(xiàn)圖片在屏幕內(nèi)縮放和移動效果

    這篇文章主要為大家詳細介紹了Android控制圖片在屏幕內(nèi)縮放和移動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Android10 App啟動Activity源碼分析

    Android10 App啟動Activity源碼分析

    這篇文章主要為大家介紹了Android10 App啟動Activity源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • 探究Android客戶端網(wǎng)絡(luò)預(yù)連接優(yōu)化機制

    探究Android客戶端網(wǎng)絡(luò)預(yù)連接優(yōu)化機制

    一般情況下,我們都是用一些封裝好的網(wǎng)絡(luò)框架去請求網(wǎng)絡(luò),對底層實現(xiàn)不甚關(guān)注,而大部分情況下也不需要特別關(guān)注處理。了解底層的一些實現(xiàn),有益于我們對網(wǎng)絡(luò)加載進行優(yōu)化。本文就是關(guān)于根據(jù)http的連接復(fù)用機制來優(yōu)化網(wǎng)絡(luò)加載速度的原理與細節(jié)
    2021-06-06
  • Android的文本和輸入之創(chuàng)建輸入法教程

    Android的文本和輸入之創(chuàng)建輸入法教程

    輸入法編輯器(IME)是讓用戶輸入文本的控件,Android提供了一個可擴展的的輸入法的框架,它允許應(yīng)用程序給用戶提供另外的輸入法,如軟鍵盤或語音輸入,需要的朋友可以了解下
    2012-12-12
  • Android開發(fā)實現(xiàn)查詢遠程服務(wù)器的工具類QueryUtils完整實例

    Android開發(fā)實現(xiàn)查詢遠程服務(wù)器的工具類QueryUtils完整實例

    這篇文章主要介紹了Android開發(fā)實現(xiàn)查詢遠程服務(wù)器的工具類QueryUtils,涉及Android服務(wù)器請求發(fā)送、接收、數(shù)據(jù)交互等相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11
  • Kotlin的::符號怎么用

    Kotlin的::符號怎么用

    本文主要介紹了Kotlin的::符號怎么用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Android自定義控件的步驟

    Android自定義控件的步驟

    今天小編就為大家分享一篇關(guān)于Android自定義控件的步驟,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Android之小球自由碰撞動畫示例

    Android之小球自由碰撞動畫示例

    大家好,本篇文章主要講的是Android之小球自由碰撞動畫示例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Jetpack Compose之選擇器使用實例講解

    Jetpack Compose之選擇器使用實例講解

    這篇文章主要介紹了Jetpack Compose之選擇器使用,選擇器主要是指Checkbox復(fù)選框,單選開關(guān)Switch,滑桿組件Slider等用于提供給用戶選擇一些值和程序交互的組件,比如像復(fù)選框Checkbox,可以讓用戶選擇一個或者多個選項
    2023-04-04

最新評論

阿坝县| 芜湖县| 贡山| 香河县| 合山市| 五大连池市| 平原县| 宁武县| 缙云县| 昂仁县| 兴城市| 庆云县| 凌源市| 鄂尔多斯市| 黎城县| 庆安县| 宁陵县| 长葛市| 鱼台县| 宜良县| 海晏县| 专栏| 怀柔区| 斗六市| 交城县| 安西县| 丘北县| 孝义市| 安龙县| 南丹县| 多伦县| 晴隆县| 兴化市| 贵南县| 黎平县| 怀远县| 昌都县| 邵阳县| 邹平县| 北宁市| 永新县|