全网整合营销服务商

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

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

Android中Viewpager禁止滑动的实现

前言

现在很多app,首页不允许滑动切换(因为页面加载吧),但是又用viewpage来管理frgament.因为方便嘛.

以前在网上找的例子:

public class NoScrollViewPager extends ViewPager { 
 public NoScrollViewPager(Context context, AttributeSet attrs) { 
  super(context, attrs); 
 } 
public NoScrollViewPager(Context context) { 
 super(context); 
 } 
 @Override 
 public boolean dispatchTouchEvent(MotionEvent ev) {  
 //不拦截,否则子孩子都无法收到事件,一般这个自定义的时候都不作处理
 return super.dispatchTouchEvent(ev); 
 } 
@Override
 public boolean onInterceptTouchEvent(MotionEvent ev) { 
 return super.onInterceptTouchEvent(ev);
 } 
 @Override
 public boolean onTouchEvent(MotionEvent ev) { 
  return true;
 }

这个自定义如果继承的Viewpager是低版本的,那么是没问题的.

但是如果你编译时用是高版本的api,5.0以后吧.上面这个自定义就会失效,

你会发现,会有细微的滑动.还是能滑动的

判断老的还是新的,看setOnPageChangeListener就知道了

最新的Viewpager里面这个方法已经废弃了,改成addOnPageChangeListener()了.

由于之前改viewpager做懒加载.一直保留了一个老版本的Viewpager使用.直到最近才发现.

改进后

public class NoScrollViewPager extends ViewPager { 
private boolean isScroll;
public NoScrollViewPager(Context context,AttributeSetattrs{ 
 super(context, attrs); 
 } 
 public NoScrollViewPager(Context context) {  
  super(context); 
 } 
/** 
 * 1.dispatchTouchEvent一般情况不做处理
 *,如果修改了默认的返回值,子孩子都无法收到事件 
 */ 
 @Override
 public boolean dispatchTouchEvent(MotionEvent ev) {      
  return super.dispatchTouchEvent(ev); // return true;不行 
 } 
 /** 
 * 是否拦截 
 * 拦截:会走到自己的onTouchEvent方法里面来 
 * 不拦截:事件传递给子孩子 
 */ 
 @Override
 public boolean onInterceptTouchEvent(MotionEvent ev) {
 // return false;//可行,不拦截事件,
  // return true;//不行,孩子无法处理事件
  //return super.onInterceptTouchEvent(ev);//不行,会有细微移动 
 if (isScroll){ 
   return super.onInterceptTouchEvent(ev);
 }else{ 
   return false;
 } 
} 
 /** 
 * 是否消费事件 
 * 消费:事件就结束 
 * 不消费:往父控件传 
 */ 
@Override 
 public boolean onTouchEvent(MotionEvent ev) { 
 //return false;// 可行,不消费,传给父控件 
 //return true;// 可行,消费,拦截事件 
 //super.onTouchEvent(ev); //不行,
 //虽然onInterceptTouchEvent中拦截了,
 //但是如果viewpage里面子控件不是viewgroup,还是会调用这个方法. 
 if (isScroll){
   return super.onTouchEvent(ev);
 }else { 
   return true;// 可行,消费,拦截事件
 }
 }
 public void setScroll(boolean scroll) {
  isScroll = scroll;
 }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# viewpager禁止滑动  # 禁止滑动的viewpager  # android  # 禁止滑动  # Android viewpage实现禁止滑动的功能  # Android viewpage实现可控制的禁止滑动  # 自定义  # 会有  # 自己的  # 加载  # 就会  # 如果你  # 走到  # 才发现  # 不做  # 这篇文章  # 谢谢大家  # 不作  # 首页  # 留了  # 你会发现  # 时用  # 又用  # 返回值  # 知道了  # 在网上 


相关文章: 建站ABC备案流程中有哪些关键注意事项?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  如何规划企业建站流程的关键步骤?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  深圳网站制作培训,深圳哪些招聘网站比较好?  如何快速完成中国万网建站详细流程?  Thinkphp 中 distinct 的用法解析  建站之星多图banner生成与模板自定义指南  建站主机选哪家性价比最高?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Python如何创建带属性的XML节点  如何高效搭建专业期货交易平台网站?  广州商城建站系统开发成本与周期如何控制?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  如何在VPS电脑上快速搭建网站?  网站制作公司排行榜,抖音怎样做个人官方网站  网站制作知乎推荐,想做自己的网站用什么工具比较好?  北京网站制作公司哪家好一点,北京租房网站有哪些?  建站之星各版本价格是多少?  建站主机选哪种环境更利于SEO优化?  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  表情包在线制作网站免费,表情包怎么弄?  香港服务器租用费用高吗?如何避免常见误区?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  黑客入侵网站服务器的常见手法有哪些?  如何彻底卸载建站之星软件?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  如何在阿里云香港服务器快速搭建网站?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  建站之星安全性能如何?防护体系能否抵御黑客入侵?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  nginx修改上传文件大小限制的方法  如何在万网开始建站?分步指南解析  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  如何设计高效校园网站?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  建站VPS推荐:2025年高性能服务器配置指南  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  建站之星安装失败:服务器环境不兼容?  Swift中switch语句区间和元组模式匹配  建站主机核心功能解析:服务器选择与网站搭建流程指南  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  常州企业网站制作公司,全国继续教育网怎么登录?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  动图在线制作网站有哪些,滑动动图图集怎么做? 

您的项目需求

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