1. 程式人生 > >監聽ScrollView滑動方向

監聽ScrollView滑動方向

我們經常看到向上滑動列表的時候app的標題欄隱藏,向下滑動的時候標題欄又再次出現。這種效果我們怎麼實現?

其實android的View類裡面有一個方法

protected void onScrollChanged(int l, intt, int oldl, int oldt)

通過查詢資料發現可以重寫這個方法來監聽列表的滑動方向。

下面我給出我針對ScrollView實現的監聽類。

/**
 * 可以監聽ScrollView的上下滑動 ,實現ScrollListener介面,呼叫setScrollListener(ScrollListener l)方法。
 * SCROLL_UP :ScrollView正在向上滑動 
 * SCROLL_DOWN :ScrollView正在向下滑動
 * @author xm
 */
public class ObservableScrollView extends ScrollView {

	private ScrollListener mListener;

	public static interface ScrollListener {
		public void scrollOritention(int oritention);
	}

	/**
	 * ScrollView正在向上滑動
	 */
	public static final int SCROLL_UP = 0x01;

	/**
	 * ScrollView正在向下滑動
	 */
	public static final int SCROLL_DOWN = 0x10;

	/**
	 * 最小的滑動距離
	 */
	private static final int SCROLLLIMIT = 40;

	public ObservableScrollView(Context context) {
		super(context, null);
	}

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

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

	@Override
	protected void onScrollChanged(int l, int t, int oldl, int oldt) {
		super.onScrollChanged(l, t, oldl, oldt);

		if (oldt > t && oldt - t > SCROLLLIMIT) {// 向下
			if (mListener != null)
				mListener.scrollOritention(SCROLL_DOWN);
		} else if (oldt < t && t - oldt > SCROLLLIMIT) {// 向上
			if (mListener != null)
				mListener.scrollOritention(SCROLL_UP);
		}
	}

	public void setScrollListener(ScrollListener l) {
		this.mListener = l;
	}
}

我們可以實現ScrollListener來實現滑動時的操作。

相關推薦

ScrollView滑動方向

我們經常看到向上滑動列表的時候app的標題欄隱藏,向下滑動的時候標題欄又再次出現。這種效果我們怎麼實現? 其實android的View類裡面有一個方法 protected void onScrollChanged(int l, intt, int oldl, int o

Android中ScrollView滑動停止和滑動到底部

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android ScrollView滑動距離簡單處理

使用ScrollView時, 有時候我們需要要獲取它滑動的距離,Android的API給我們提供了設定監聽的方法: scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener()

ScrollView 的上下滑動

最近在一些APP(新聞資訊)應用上看到當向上滑動列表的時候底部的導航欄隱藏、向下滑動的時候底部導航欄顯示! 為此做出一下實現方式,重寫ScrollView (滾動檢視) 剛開始在重寫ScrollView 的時候,覺得重寫OnTouch 事件,但是當我們需

小程式 - 設定上一層頁面資料 & 頁面滑動返回上一頁

設定上一層頁面資料 在某些場景下,我們需要在A頁面進行表單的簡單編輯,然後跳轉(wx.navigateTo)進入B頁面,進行詳細的表單編輯;在B頁面完成編輯後,返回A頁面,將所有資料進行提交。 這裡需要關注的是,B頁面返回A頁面中,需要攜帶當前頁面的資料,便於在A頁面中使用。 攜帶引數進

微信小程式 手勢滑動切換頁面

1.對應的xml裡寫上手勢開始、滑動、結束的監聽: <view class="touch" bindtouchstart="touchStart" bindtouchmove="touchMove" bindtouchend="touchEnd" ><

android webView滑動距離和標題欄顏色漸變

重寫webView之 X5WebView import android.annotation.SuppressLint; import android.content.Context; import android.graphics.drawable.Drawable;

UIscrollView滾動的方向

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{     CGPoint sliderMargin = [scrollView.panGestureRecognizer velocityInView:scrollV

JS實現滾動以及滑動到頂部【轉】

以前做滾動監聽都是用jQuery來實現這樣的效果,雖然用jquery實現起來很方便,但是還是想用原生js來實現一下。 HTML程式碼: <div class="uptop" id="uptop"> <img src="i

pulltorefresh擴充套件下拉上拉重新整理載入及listview滾動方向

很多android應用的下拉重新整理都是使用的pulltorefresh這個開源專案,但是它的擴充套件性在下拉重新整理同時又上拉載入更多時會有一定的侷限性。查了很多地方,發現這個開源專案並不能很好的同時支援下拉重新整理和上拉載入更多。這個元件有個mode的屬性,可以設

ScrollView滑動到頂部和底部的方法

col sets @override bottom void bsp div nds over 不需要監聽滑動位置,只需要重寫ScrollView的onOverScrolled和stopNestedScroll方法就可以了 public class ReadScrollV

Android中ScrollView如何滑動距離(總結)

需求:想實現像美團中列表下拉後出現懸浮窗的效果。 思路:首先對ScrollView進行滑動監聽,然後在onScrollChanged()方法中獲取到滑動的Y值,接著進行相關操作即可。 實現步驟: 1、自定義MyScrollView (1)重寫onScrollChang

Android ScrollView滑動

     因為專案裡用到了ScrollView, 並需要實現類似於ListView的滑動監聽回撥,所以自定義了一套實現方式支援這些事件, 基本滿足了業務需求;public interface OnMyScrollListener { int SCROLL_STATE_

Android ScrollView滑動

在Android開發中,很多時候都要用到ScrollView來進行頁面的滾動效果。那如果可以監聽到使用者的滾動狀態來分別進行設定頁面效果,APP的外觀上肯定是可以加分的。 原生的ScrollView並沒有實現類似ListView的onScrollLis

Android中自定義ScrollView滑動事件

專案結構: 1.LazyScrollView類(自定義ScrollView) package android.zhh.com.myapplicationscrollview; /** * Created by sky on 2017/3/19. */ impor

Android中自定義ScrollView滑動事件,並在滑動時漸變標題欄背景顏色

效果圖 滑動前: 滑動中: 滑動到底部: 專案結構 ObservableScrollView package com.jukopro.titlebarcolor; import android.content.Context; import android.u

Android ScrollView滑動到頂部和底部的兩種方式

import android.content.Context; import android.util.AttributeSet; import android.widget.ScrollView; /** * 監聽ScrollView滾動到頂部或者底部做相關事件攔截 */ public class S

手機影音第十天,控制屏幕上下滑動改變音量變化,物理鍵改變音量

滑動屏幕改變音量大小 物理鍵的增大、減小改變音量與seekbar的進度條 代碼已托管至碼雲上,有興趣的小夥伴可以下載看看,IDE是Android studio 2.3.2 https://git.oschina.net/joy_yuan/MobilePlayer 常

ListView滑動和設置點擊事件

image null ram protected item import idle 滾動 pri viewholder_item.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout

HTML編程之滾輪滑動效果的實現

false eve function dom 滾輪 event als 瀏覽器 html 在前端頁面制作過程中,我們經常會發現有時候某些動作需要滾動滑輪來實現,那麽對於初學者來說可能不明白是如何實現的,對於這個問題,下面就來跟大家分析一下,如何用滾輪滑動監聽效果的實現。 源