WebView 滑动监听

目前功能需要监听webview的滑动状态,但是webview本身没有滑动监听

谷歌在API23版本 为View添加了一个方法

/** * Register a callback to be invoked when the scroll X or Y positions of
 * this view change. 
* <p> 
* <b>Note:</b> Some views handle scrolling independently from View and may 
* have their own separate listeners for scroll-type events. For example, 
* {@link android.widget.ListView ListView} allows clients to register an 
* {@link android.widget.ListView#setOnScrollListener(android.widget.AbsListView.OnScrollListener) AbsListView.OnScrollListener} 
* to listen for changes in list scroll position. 
* 
* @param l The listener to notify when the scroll X or Y position changes. 
* @see android.view.View#getScrollX()
* @see android.view.View#getScrollY() 
*/
public void setOnScrollChangeListener(OnScrollChangeListener l) { 
   getListenerInfo().mOnScrollChangeListener = l;
}复制代码

通过这个方法获取webview的滑动状态,但是 之前的版本怎么办呢?

自定义一个webview如下

public class ScrollWebView extends WebView {    
private OnScrollChangedCallback mOnScrollChangedCallback;    
public ScrollWebView(final Context context) {
        super(context);    
}    
public ScrollWebView(final Context context, final AttributeSet attrs) {        
super(context, attrs);    
}    
public ScrollWebView(final Context context, final AttributeSet attrs,                         
final int defStyle) {        super(context, attrs, defStyle);    
}    
@Override    
protected void onScrollChanged(final int l, final int t, final int oldl,                                   
final int oldt) {        super.onScrollChanged(l, t, oldl, oldt);        
if (mOnScrollChangedCallback != null) {            
mOnScrollChangedCallback.onScroll(l - oldl, t - oldt);        
}    
}    
public OnScrollChangedCallback getOnScrollChangedCallback() {
        return mOnScrollChangedCallback;    
}    
public void setOnScrollChangedCallback(            
final OnScrollChangedCallback onScrollChangedCallback) {        
mOnScrollChangedCallback = onScrollChangedCallback;    
}    
/**     
* Impliment in the activity/fragment/view that you want to listen to the webview     
*/    
public  interface OnScrollChangedCallback {         
void onScroll(int dx, int dy);    
}
}复制代码


在使用的地方 实现onScroll方法

 public void onScroll(int dx, int dy) {    
        //todo 你的骚操作
}复制代码


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值