我們需要監聽ScroView的滑動情況,比如滑動了多少距離,是否滑到布局的頂部或者底部。可惜的是SDK并沒有相應的方法,不過倒是提供了一個
protected void onScrollChanged(int l, int t, int oldl, int oldt)
顯然這個方法是不能被外界調用的,因此就需要把它暴露出去,解決方式就是寫一個接口
/*** Created by 劉楠 on 2016/8/21 0021.17:24*/public interface ScrollViewListener {void onScrollChanged(ObservableScrollView observableScrollView,int x,int y ,int oldx, int oldy);}然后重寫ScrollView類,給它提供上面寫的回調接口
package com.liu.titlealpha.view;import android.content.Context;import android.util.AttributeSet;import android.widget.ScrollView;/*** Created by 劉楠 on 2016/8/21 0021.17:23*/public class ObservableScrollView extends ScrollView {private ScrollViewListener mScrollViewListener=null;public void setScrollViewListener(ScrollViewListener scrollViewListener) {mScrollViewListener = scrollViewListener;}public ObservableScrollView(Context context) {super(context);}public ObservableScrollView(Context context, AttributeSet attrs) {super(context, attrs);}public ObservableScrollView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onScrollChanged(int x, int y, int oldx, int oldy) {super.onScrollChanged(x, y, oldx, oldy);if (mScrollViewListener != null) {mScrollViewListener.onScrollChanged(this, x, y, oldx, oldy);}}} 布局時,用重寫的這個ScrollView
新聞熱點
疑難解答