Android 自定义ViewPager设置屏蔽左右滑动事件
只要有欲望,就应该有奋斗的心....
屏蔽左右滑动事件的viewPager
public class CustomNoScrollViewPager extends ViewPager{private boolean noScroll = false;public CustomNoScrollViewPager(Context context, AttributeSet attrs) {super(context, attrs);}public CustomNoScrollViewPager(Context context) {super(context);}public void setNoScroll(boolean noScroll) {this.noScroll = noScroll;}@Overridepublic void scrollTo(int x, int y) {super.scrollTo(x, y);}@Overridepublic boolean onTouchEvent(MotionEvent arg0) {/* return false;//super.onTouchEvent(arg0); */if (noScroll)return false;elsereturn super.onTouchEvent(arg0);}@Overridepublic boolean onInterceptTouchEvent(MotionEvent arg0) {if (noScroll)return false;elsereturn super.onInterceptTouchEvent(arg0);}@Overridepublic void setCurrentItem(int item, boolean smoothScroll) {super.setCurrentItem(item, smoothScroll);}@Overridepublic void setCurrentItem(int item) {super.setCurrentItem(item);}}
在使用些viewpager的时候,只需要在合适的时候调用 viewpager.setNoScroll(true)方法,即可以实现屏蔽viewpager的左右滑动
ViewPager嵌套ViewPager 的使用
解决子ViewPager与父viewpager的事件冲突问题
import android.content.Context;
import android.graphics.PointF;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;public class CustomAndParentViewpager extends ViewPager {/** 触摸时按下的点 **/PointF downP = new PointF();/** 触摸时当前的点 **/PointF curP = new PointF();public CustomAndParentViewpager(Context context, AttributeSet attrs) {super(context, attrs);}public CustomAndParentViewpager(Context context) {super(context);}@Overridepublic boolean onTouchEvent(MotionEvent arg0) {//每次进行onTouch事件都记录当前的按下的坐标if(getChildCount()<=1){return super.onTouchEvent(arg0);}curP.x = arg0.getX();curP.y = arg0.getY();if(arg0.getAction() == MotionEvent.ACTION_DOWN){//记录按下时候的坐标//切记不可用 downP = curP ,这样在改变curP的时候,downP也会改变downP.x = arg0.getX();downP.y = arg0.getY();//此句代码是为了通知他的父ViewPager现在进行的是本控件的操作,不要对我的操作进行干扰getParent().requestDisallowInterceptTouchEvent(true);}if(arg0.getAction() == MotionEvent.ACTION_MOVE){//此句代码是为了通知他的父ViewPager现在进行的是本控件的操作,不要对我的操作进行干扰getParent().requestDisallowInterceptTouchEvent(true);}if(arg0.getAction() == MotionEvent.ACTION_UP || arg0.getAction() == MotionEvent.ACTION_CANCEL){//在up时判断是否按下和松手的坐标为一个点//如果是一个点,将执行点击事件,这是我自己写的点击事件,而不是onclickgetParent().requestDisallowInterceptTouchEvent(false);if(downP.x==curP.x && downP.y==curP.y){return true;}}super.onTouchEvent(arg0); //注意这句不能 return super.onTouchEvent(arg0); 否则触发parent滑动return true;}
}
Android自定义控件ImageViwe(一)——依据控件的大小来设置缩放图片显示
点击打开链接
Android自定义ImageView(二)——实现双击放大与缩小图片
点击打开链接
Android自定义控件ImageViwe(三)——随手指进行图片的缩放
点击打开链接
Android自定义控件ImageViwe(四)——多点触控实现图片的自由移动
点击打开链接
Android ListView分组排序显示数据
点击打开链接
Android自定义下拉刷新功能的ListView
点击打开链接
Android音乐播放器高级开发
点击打开链接
Android自定义控件之流式布局
点击打开链接
Android 自定义ViewPager设置屏蔽左右滑动事件相关推荐
- Android自定义快速设置
Android自定义快速设置 Customizer Quick Setting 自定义快速设置 Android N/7.0 牛轧糖 Android自定义快速设置 前言 自定义快速设置图块 深入理解Ti ...
- Android 解决ViewPager双层嵌套的滑动问题
Android 解决ViewPager双层嵌套的滑动问题 参考文章: (1)Android 解决ViewPager双层嵌套的滑动问题 (2)https://www.cnblogs.com/zhujia ...
- Android自定义拍照上传界面,Android自定义dialog——设置头像(拍照,相册)
Android自定义dialog--设置头像(拍照,相册) 需求场景:个人信息设置,点击头像,在界面上弹出一个弹框,用户选择"拍照"/"从图库选择",选择照片后 ...
- Android自定义ViewPager图片指示器,兼容实现底部横线指示器
前言 记得以前自己使用过的ViewPager Indicator有JakeWharton大神的开源库ViewPagerIndicator,v4包自带的PagerTitleStrip以及Android ...
- android如何自定义viewpager,Android自定义ViewPager实现个性化的图片切换效果
第一次见到ViewPager这个控件,瞬间爱不释手,做东西的主界面通通ViewPager,以及图片切换也抛弃了ImageSwitch之类的,开始让ViewPager来做.时间长了,ViewPager的 ...
- android view禁用,Android 禁止ViewPager的自带滑动效果
由于最近在做墨水屏的相关工作,ViewPager自带的滑动效果在墨水屏上表现的很不好,残影太重了.所以禁止自带的滑动效果,用接口来接管相关逻辑实现自处理. import android.content ...
- Android使用ViewPager实现左右循环滑动及轮播效果
ViewPager是一个常用的android组件,不过通常我们使用ViewPager的时候不能实现左右无限循环滑动,在滑到边界的时候会看到一个不能翻页的动画,可能影响用户体验.此外,某些区域性的Vie ...
- Android自定义View,跟随手指滑动效果
Android自定义View,实现跟随手指滑动效果, 效果如下: 一,重写onTouchEvent方法 最后返回true 二,在MotionEvent.ACTION_MOVE情况下改变自定义view ...
- android自定义view设置高度,自定义View的宽高设定
关于View的属性 自定义动态设置View的大小属性 使用LayoutParams来设置view的宽高. int textLen = AddShopActivity.mCategoryItemName ...
最新文章
- Mac系统安装Aircrack-ng破解wifi密码(2)
- delphi json
- 【WebRTC---入门篇】(四)WebRTC设备管理
- LeetCode 662. 二叉树最大宽度(递归)
- 超详细的jQuery的 DOM操作,一篇就足够!
- 微信中打开h5页面,直接关闭窗口js
- 考大学计算机考试作文,机考作文
- java中的io系统详解[转]
- 他们连忙跟了上去ZuL1VsLa5X67XOI
- GO 打开WINDOWS的默认浏览器
- 关于重装系统前的准备、备份和重装完后系统优化、使用习惯等说明
- 00 Linux到底是什么?
- Unity 水体浮力的实现
- 【Autoware规控】mpc_follower模型预测控制节点
- 【MySQL】作业一
- 在JitPack上发布Android库
- GaussDB架构(下)
- 教你如何搭建vue项目
- java 国际化方案,java 项目国际化完全实现
- 如何找到大于或等于一个整数的最小的 2 的幂?