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

Android監(jiān)聽ScrollView滑動距離的簡單處理

 更新時間:2022年02月16日 13:51:03   作者:輝son  
這篇文章主要為大家詳細介紹了Android監(jiān)聽ScrollView滑動距離的簡單處理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Android監(jiān)聽ScrollView滑動距離的具體方法,供大家參考,具體內容如下

使用ScrollView時,有時候我們需要要獲取它滑動的距離,Android的API給我們提供了設置監(jiān)聽的方法:

scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {

? ? ? ? ? ? }
? ? ? ? });

很遺憾的是:Call requires API 23
點進去看下View里面的OnScrollChangeListener在哪個方法里面監(jiān)聽位置:

/**
? ? ?* This is called in response to an internal scroll in this view (i.e., the
? ? ?* view scrolled its own contents). This is typically as a result of
? ? ?* {@link #scrollBy(int, int)} or {@link #scrollTo(int, int)} having been
? ? ?* called.
? ? ?*
? ? ?* @param l Current horizontal scroll origin.
? ? ?* @param t Current vertical scroll origin.
? ? ?* @param oldl Previous horizontal scroll origin.
? ? ?* @param oldt Previous vertical scroll origin.
? ? ?*/
? ? protected void onScrollChanged(int l, int t, int oldl, int oldt) {
? ? ? ? notifySubtreeAccessibilityStateChangedIfNeeded();

? ? ? ? if (AccessibilityManager.getInstance(mContext).isEnabled()) {
? ? ? ? ? ? postSendViewScrolledAccessibilityEventCallback();
? ? ? ? }

? ? ? ? mBackgroundSizeChanged = true;
? ? ? ? if (mForegroundInfo != null) {
? ? ? ? ? ? mForegroundInfo.mBoundsChanged = true;
? ? ? ? }

? ? ? ? final AttachInfo ai = mAttachInfo;
? ? ? ? if (ai != null) {
? ? ? ? ? ? ai.mViewScrollChanged = true;
? ? ? ? }

? ? ? ? if (mListenerInfo != null && mListenerInfo.mOnScrollChangeListener != null) {
? ? ? ? ? ? mListenerInfo.mOnScrollChangeListener.onScrollChange(this, l, t, oldl, oldt);
? ? ? ? }
? ? }

一看其實實現不難,不就是自定義個ScrollView, 里面多寫個監(jiān)聽, 實現如下:

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ScrollView;

/**
?* Created by hucanhui on 16/7/28.
?*/
public class ObservableScrollView extends ScrollView{
? ? private OnScollChangedListener onScollChangedListener = null;

? ? public ObservableScrollView(Context context) {
? ? ? ? super(context);
? ? }

? ? public ObservableScrollView(Context context, AttributeSet attrs,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int defStyle) {
? ? ? ? super(context, attrs, defStyle);
? ? }

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

? ? public void setOnScollChangedListener(OnScollChangedListener onScollChangedListener) {
? ? ? ? this.onScollChangedListener = onScollChangedListener;
? ? }

? ? @Override
? ? protected void onScrollChanged(int x, int y, int oldx, int oldy) {
? ? ? ? super.onScrollChanged(x, y, oldx, oldy);
? ? ? ? if (onScollChangedListener != null) {
? ? ? ? ? ? onScollChangedListener.onScrollChanged(this, x, y, oldx, oldy);
? ? ? ? }
? ? }

? ? public interface OnScollChangedListener {

? ? ? ? void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy);

? ? }
}

使用簡單:

scrollView.setOnScollChangedListener(new ObservableScrollView.OnScollChangedListener() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy){
? ? ? ? ? ? }
? ? ? ? });

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android實現dialog的3D翻轉示例

    Android實現dialog的3D翻轉示例

    這篇文章主要介紹了Android實現dialog的3D翻轉示例,非常具有實用價值,需要的朋友可以參考下
    2017-08-08
  • Android實用小技巧之利用Lifecycle寫出更好維護的代碼

    Android實用小技巧之利用Lifecycle寫出更好維護的代碼

    lifecycle是一個類,用于存儲有關組件(如Activity或Fragment)的生命周期狀態(tài)的信息,并允許其他對象觀察此狀態(tài),下面這篇文章主要給大家介紹了關于Android實用小技巧之利用Lifecycle寫出更好維護的代碼的相關資料,需要的朋友可以參考下
    2022-05-05
  • Android AndFix熱修復原理詳情

    Android AndFix熱修復原理詳情

    這篇文章主要介紹了Android AndFix熱修復原理詳情,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值嗎,需要的小伙伴可以參考一下
    2022-08-08
  • android開發(fā)教程之ubuntu使用adb連接小米2的步驟和adb調試方法

    android開發(fā)教程之ubuntu使用adb連接小米2的步驟和adb調試方法

    這篇文章主要介紹了ubuntu中使用adb連接小米2的步驟和adb調試方法,需要的朋友可以參考下
    2014-02-02
  • 淺談Android RecyclerView 間距全適配

    淺談Android RecyclerView 間距全適配

    本篇文章主要介紹了淺談Android RecyclerView 間距全適配,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Android Studio 自定義Debug變量視圖的方法

    Android Studio 自定義Debug變量視圖的方法

    這篇文章主要介紹了Android Studio 自定義Debug變量視圖的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Android自定義圓環(huán)倒計時控件

    Android自定義圓環(huán)倒計時控件

    這篇文章主要為大家詳細介紹了Android自定義圓環(huán)倒計時控件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 談談Android6.0運行時的權限處理

    談談Android6.0運行時的權限處理

    之前有人在 Android 6.0 的機型上運行了DragGridView結果出異常奔潰了。想必問題的原因大家都知道,是Android 6.0新引入了在運行時權限申請(Runtime Permissions)的功能。那么這所謂的運行時申請權限究竟是怎么一回事呢,下面跟著小編一起來看看吧!
    2016-08-08
  • 解析Android中Animation動畫的編寫要點

    解析Android中Animation動畫的編寫要點

    這篇文章主要介紹了Android中Animation動畫的編寫要點,講解了Animation的幾個常用標簽的用法,需要的朋友可以參考下
    2016-04-04
  • Android 消息機制以及handler的內存泄露

    Android 消息機制以及handler的內存泄露

    這篇文章主要介紹了Android 消息機制以及handler的內存泄露的相關資料,需要的朋友可以參考下
    2016-09-09

最新評論

东乡| 开化县| 廉江市| 牡丹江市| 德安县| 虞城县| 长泰县| 察雅县| 海晏县| 铜川市| 红河县| 平邑县| 盘锦市| 德令哈市| 宁夏| 介休市| 岳普湖县| 泰州市| 千阳县| 湖北省| 闽清县| 昌吉市| 梁山县| 城步| 原阳县| 赤城县| 长子县| 东兰县| 镇安县| 蓬莱市| 杭锦后旗| 彭阳县| 长春市| 惠州市| 达孜县| 新乐市| 梁山县| 周至县| 玛纳斯县| 泰顺县| 常德市|