android webview禁止上下滑动,Android中解决WebView上下滑动监听问题

有些时候我们需要监听webview的滚动事件,但WebView没有直接监听滑动的方法,看WebView的源码则会发现有一个protected void onScrollChanged(int l,int t,int oldl,int oldt)方法。

这个方法。是受到保护的所以我们无法直接使用,所以我们写一个加强的WebView,重写onScrollChanged方法并利用接口回调。

public class NewWebView extends WebView{

private OnScrollChangeListener mOnScrollChangeListener;

public NewWebView(Context context,AttributeSet attrs) {

super(context,attrs);

}

@Override

protected void onScrollChanged(int l,int oldt) {

super.onScrollChanged(l,t,oldl,oldt);

// webview的高度

float webcontent = getContentHeight() * getScale();

// 当前webview的高度

float webnow = getHeight() + getScrollY();

if (Math.abs(webcontent - webnow) < 1) {

//处于底端

mOnScrollChangeListener.onPageEnd(l,oldt);

} else if (getScrollY() == 0) {

//处于顶端

mOnScrollChangeListener.onPageTop(l,oldt);

} else {

mOnScrollChangeListener.onScrollChanged(l,oldt);

}

}

public void setOnScrollChangeListener(OnScrollChangeListener listener) {

this.mOnScrollChangeListener = listener;

}

public interface OnScrollChangeListener {

public void onPageEnd(int l,int oldt);

public void onPageTop(int l,int oldt);

public void onScrollChanged(int l,int oldt);

}

}

使用:

public class NewsActivity extends AppCompatActivity {

private NewsWebView mWebView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_news);

mWebView = (NewsWebView) findViewById(R.id.web_view);

mWebView.setOnScrollChangeListener(new NewsWebView.OnScrollChangeListener() {

@Override

public void onPageEnd(int l,int oldt) {

Logs.d("已经到达地端");

}

@Override

public void onPageTop(int l,int oldt) {

Logs.d("已经到达顶端");

}

@Override

public void onScrollChanged(int l,int oldt) {

}

});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值