全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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 t, int oldl, 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, t, oldl, oldt);
  } else if (getScrollY() == 0) {
   //处于顶端
   mOnScrollChangeListener.onPageTop(l, t, oldl, oldt);
  } else { 
   mOnScrollChangeListener.onScrollChanged(l, t, oldl, oldt); 
  } 
 }

 public void setOnScrollChangeListener(OnScrollChangeListener listener) {
  this.mOnScrollChangeListener = listener; 
 }

 public interface OnScrollChangeListener {

  public void onPageEnd(int l, int t, int oldl, int oldt);

  public void onPageTop(int l, int t, int oldl, int oldt);

  public void onScrollChanged(int l, int t, int oldl, 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 t, int oldl, int oldt) {
    Logs.d("已经到达地端");
   }

   @Override
   public void onPageTop(int l, int t, int oldl, int oldt) {
    Logs.d("已经到达顶端");
   }

   @Override
   public void onScrollChanged(int l, int t, int oldl, int oldt) {
   }
  });

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


# android  # webview  # 监听  # webview滑动监听  # 监听上下滑动  # Android WebView的详解及实例  # Android 解决WebView无法上传文件的问题  # Android WebView自定义长按选择实现收藏/分享选中文本功能  # Android WebView 不支持 H5 input type="file" 解决方法  # Android 5.1 WebView内存泄漏问题及快速解决方法  # Android WebView或手机浏览器打开连接问题解决办法总结  # Android webview使用方法总结  # 重写  # 则会  # 回调  # 大家多多  # 发现有  # 底端  # NewWebView  # OnScrollChangeListener  # private  # extends  # attrs  # super  # Override  # AttributeSet  # mOnScrollChangeListener  # Context 


相关文章: 天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  建站主机数据库如何配置才能提升网站性能?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  专业公司网站制作公司,用什么语言做企业网站比较好?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  威客平台建站流程解析:高效搭建教程与设计优化方案  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  如何在建站之星绑定自定义域名?  建站主机功能解析:服务器选择与快速搭建指南  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  香港服务器网站卡顿?如何解决网络延迟与负载问题?  教学论文网站制作软件有哪些,写论文用什么软件 ?  西安大型网站制作公司,西安招聘网站最好的是哪个?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何通过VPS建站实现广告与增值服务盈利?  如何正确下载安装西数主机建站助手?  Swift中循环语句中的转移语句 break 和 continue  建站之星展会模版如何一键下载生成?  网站制作公司排行榜,四大门户网站排名?  教程网站设计制作软件,怎么创建自己的一个网站?  制作旅游网站html,怎样注册旅游网站?  公司网站的制作公司,企业网站制作基本流程有哪些?  山东网站制作公司有哪些,山东大源集团官网?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  如何快速搭建虚拟主机网站?新手必看指南  如何确认建站备案号应放置的具体位置?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何选择高效可靠的多用户建站源码资源?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  如何快速搭建安全的FTP站点?  建站主机无法访问?如何排查域名与服务器问题  ,怎么用自己头像做动态表情包?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  如何在云指建站中生成FTP站点?  如何快速搭建个人网站并优化SEO?  建站org新手必看:2024最新搭建流程与模板选择技巧  ppt制作免费网站有哪些,ppt模板免费下载网站?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  公司网站设计制作厂家,怎么创建自己的一个网站?  如何在阿里云服务器自主搭建网站?  购物网站制作公司有哪些,哪个购物网站比较好?  表情包在线制作网站免费,表情包怎么弄?  如何在云虚拟主机上快速搭建个人网站?  宝塔面板如何快速创建新站点?  长沙做网站要多少钱,长沙国安网络怎么样? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。