ViewPager禁止滑动效果实现

Android——禁止ViewPager的左右滑动功能实现 在Android开发中,ViewPager是一种常用的滑动控件,用于实现页面的左右切换效果。然而,在某些场景中,我们可能需要禁止ViewPager的左右滑动功能,只允许通过其他方式进行页面切换。本文将介绍如何在Android中实现禁止ViewPager左右滑动的功能,并提供相应的源代码示例。以上是本文关于在Android中禁止ViewPager左右滑动功能的介绍,希望能够对你的开发工作有所启发。要实现禁止ViewPager左右滑动的功能,我们可以通过创建一个自定义的ViewPager子类来完成。 阅读详情

写在前面

项目刚开始的时候,PM:你这个不用滑动,太花哨。。。
我:现在主流的app,一般都能滑动的,这样也比较符合用户习惯…
现在,PM:你这个怎么不能滑动啊,不符合用户需求啊,赶紧改了。。。
我:…

不管怎样,写都写了,还是扔出来大家看看

重写ViewPager的方法

我使用的是ViewPager+FragmentPagerAdapter

禁止滑动效果,挺简单的,就重写一下ViewPager的方法就可以了。

先定义一个boolean的值进行标记,是否允许滑动。

// 是否滑动,用来标记
    private boolean isCanScroll = true;

在继承它的子类中设置是否允许滑动

    public void setCanScroll(boolean canScroll) {
        isCanScroll = canScroll;
    }

重写ViewPager的拦截方法,这是一个拦截方法,用于事件的处理,可以改变事件的传递方向,它决定了Touch事件是否向下子控件传递。

如果返回了false,就不拦截,传递给子控件
如果返回了true,就会拦截,由自己的onTouchEvent处理

super.onInterceptTouchEvent(ev),默认就是return true。

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return isCanScroll && super.onInterceptTouchEvent(ev);
    }

重写ViewPager的处理方法,这个方法决定了当前控件是否消费了这个事件

如果返回false,就是没有消费,会一层层的向上传。
如果返回true,就表示被消费了,事件到此结束了。

super.onTouchEvent(ev),默认返回的是false。

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        return isCanScroll && super.onTouchEvent(ev);
    }

使用

在要使用ViewPager的Activity里

// 使用CustomViewPager 继承ViewPager
    private CustomViewPager container;

在onCreate方法中

// 禁止左右滑动
        container.setCanScroll(false);

在布局文件.xml中

<!-- 禁用滑动导航菜单页 -->
    <com.巴拉巴拉.common.view.CustomViewPager
        android:id="@+id/containerVP"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

通过上面的步骤,就可以禁止ViewPager的左右滑动效果了。

Ps:
关于Android的onInterceptTouchEvent()和onTouchEvent(),这位老哥的博客写的挺细的。
拦截和处理方法详解

重写文件下载地址

自定义ViewPager (禁止滑动和去除切换效果) 自定义ViewPager (禁止滑动和去除切换效果) viewPager.setNoScroll(true);//禁止手动滑动 立即下载

相关推荐

RK3399跨楼层机器人:SLAM技术与商业应用解析

SLAM(即时定位与地图构建)技术是移动机器人自主导航的核心,通过激光雷达、视觉传感器等多源数据融合实现厘米级定位。RK3399作为高性能嵌入式平台,其六核架构和Mali GPU能高效处理SLAM算法与传感器数据。在商业场景中,这种技术组合可支撑机器人实现跨楼层物资配送、仓库盘点等复杂任务。以SLAMTEC Hermes平台为例,其模块化设计支持电梯控制集成,配合双深度相机和360°激光雷达,在医疗、物流等领域已实现12分钟平均配送效率和99.7%的识别准确率。

weixin_30376083的博客 619

优雅的控制ViewPager是否可以滑动

今天我们来优雅的实现不能滑动的ViewPager,不直接在ViewPager中写死,我们自己调用方法 控制ViewPager的拦截事件和滑动 先看看怎么用: viewPager = (MyViewPager) findViewById(R.id.activity_main_viewpager); viewPager.setTouchIntercept(false);

Jefferyleng的专栏 1050

elmos 524系列芯片笔记

芯片的工作工作原理:集成芯片Elmos524.03有发射回路和接收回路,手册有关的内部原理图,大致如下: 芯片会产生固有频率的电压信号,信号通过引脚DRV1、2输出给外部压电陶瓷片,产生固定频率的机械波,也就是所谓的超声波,超声波遇到障碍物时会反射,反射信号经过AINS、D引脚进入芯片,在芯片内部先后经过GAIN放大,滤波然后进入比较器,滤波后的信号(signal)同预先设定的阈值(threshold)比较产生信号输出。此信号最终会连接MCU处理器,需要重点关注。 基于这个内部的工作原

qq_38230916的博客 2484

android viewpager原理,ViewPager不为人知的秘密

ViewPager不为人知的秘密ViewPager翻页控制关于控制ViewPager的翻页,在网上已经有很多解决方法了,我们一个个来看看。setScanScroll()我们先来看一下具体实现:public class CustomViewPager extends ViewPager {private boolean isCanScroll = true;public CustomViewPage...

weixin_39766109的博客 479

四路独立可控供电USB 2.0智能集线器设计

USB集线器是连接外设的基础接口设备,其供电管理能力直接影响系统可靠性与远程运维效率。传统HUB仅提供固定VBUS输出,缺乏端口级电源控制机制,难以实现软复位、故障隔离与功耗优化。本方案基于USB 2.0协议透明转发原理,通过硬件级电子负载开关(如MT9700)与独立MCU(ESP32-C3)协同,构建具备四路独立限流(680mA)、纳秒级通断响应、WiFi/MQTT远程管控能力的智能供电架构。技术价值体现在协议无侵入、控制域与数据域物理隔离、默认安全上电策略等工程实践要点,广泛适用于工业远程调试、实验室设

weixin_36289742的博客 193

从零开始:用摩尔线程S4000运行开源AI项目的完整流程

本文详细介绍了如何使用摩尔线程S4000 GPU从零开始运行开源AI项目的完整流程,包括硬件选择、驱动安装、容器化环境配置以及典型AI项目的实战部署。通过性能优化技巧,显著提升推理速度,适合开发者快速上手国产GPU的AI应用开发。

weixin_29231725的博客 581

Android 自定义ViewPager 禁止滑动

Android 自定义ViewPager 禁止滑动

weixin_51522235的博客 1589

海思Hi3061M MCU:为高速吹风筒市场注入智能动力

此外,海思还提供了丰富的软件开发工具和生态环境组件,帮助开发者快速实现复杂功能。高速吹风筒因其高效的风力和快速的干燥效果,近年来在市场上越来越受欢迎。然而,传统的高速吹风筒在性能、噪音和使用寿命等方面仍有改进的空间。凭借其高性能、低功耗、低噪声和易用的开发工具,为高速吹风筒市场带来了全新的解决方案。这不仅提高了用户的使用体验,还延长了电机的使用寿命。这不仅减少了电机的电磁噪声,还提高了电机的运行效率。还支持风机顺逆风启动适配多种电阻范围的电机,进一步提高了吹风筒的适用性和灵活性。

2401_83448585的博客 2016

控制ViewPager嵌套相关的canScroll方法

需求:一个ViewPager中包含三个Fragment; 每个fragment中都是一个RecyclerView的纵向列表; 列表中有的Item为可横向滑动的类似相册浏览的RecyclerView. 要求:在横向滑动相册浏览的RecyclerView时,Viewpager不会随着一起滑动.分析:直接写代码是不会存在什么滑动冲突的,但是有个问题是当横向的相册RecyclerView滑动到最左(或

owner_of_dog_mi的博客 3261

基于STM32与毫米波雷达的非接触式睡眠监测系统

物联网和嵌入式系统技术正在推动医疗健康设备的智能化发展。通过传感器网络采集生理信号,结合信号处理算法实现健康监测已成为主流技术方案。毫米波雷达凭借其非接触检测特性,在呼吸、心率等生命体征监测中展现出独特优势。STM32系列MCU凭借丰富外设和低功耗特性,成为医疗级嵌入式设备的首选平台。本系统整合60GHz毫米波雷达、红外测温与无线传输模块,构建了完整的睡眠质量评估解决方案,其硬件架构设计、信号处理算法和低功耗优化策略对可穿戴医疗设备开发具有参考价值。

weixin_36369848的博客 612

36、T5L 迪文屏C51开发之绘制动态曲线

T5L 迪文屏C51开发之绘制动态曲线1、介绍2、例程功能简介3、GUI界面设计3、C51程序设计 1、介绍   本文将利用DGUS Tool软件中的【动态曲线控件】来绘制曲线效果,在T5L迪文屏中总共支持8个通道的曲线,而曲线数据是需要缓冲区的,如果 8 通道曲线同时使用,0x1000-0x4FFF 将作为曲线缓冲区地址,此时该部分变量地址不能被其他控键使用,其他控键地址使用范围为0x5000-0xFFFF,当某曲线通道不被使用时,那么其所对应的缓冲区地址可以做其他用途,曲线通道具体的地址分布如下图所示:

嵌入式羊圈 3131

自定义ViewPager 禁止滑动和去除滑动效果

自定义ViewPager 禁止滑动和去除滑动效果 仿微信去除点击底部按钮 viewPager 页面切换效果 同时可以手动设置viewPager的是否可以手动滑动 viewPager.setNoScroll(true); //禁止手动滑动 代码如下: /** * 手动控制viewpager是否可以左右滑动 * 去除滑动动画 * setNoScroll(boolean noS

u014454120的博客(静思潜行) 7862

自定义View系列教程04--Draw源码分析及其实践

通过之前的详细分析,我们知道:在measure中测量了View的大小,在layout阶段确定了View的位置。 完成这两步之后就进入到了我们相对熟悉的draw阶段,在该阶段真正地开始对视图进行绘制。按照之前的惯例,我们来瞅瞅View中draw( )的源码 public void draw(Canvas canvas) { final int privateFlags = mPriv

谷哥的小弟 2万+

Android ViewPager禁止滑动、滑动效果

Android ViewPager禁止滑动、滑动效果

xxm_love521的博客 3871

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

viewpage 去掉左右切换效果_去除ViewPager界面切换动画、禁止滑动

public class CustomViewPager extends ViewPager {public CustomViewPager(Context context, AttributeSet attrs) {super(context, attrs);}public CustomViewPager(Context context) {super(context);}//去除页面切换时的滑...

weixin_39625586的博客 446

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ViewPager+Fragment的实现及禁止滑动

现在大部分的APP都都大致分为好几个模块,这就用到了viewpager+fragment来实现这样的效果,下面咱们就一起来实现一下这样的效果;一、实现 1、首先是activity_main.xml;新建一个viewpager和三个可供以后点击的按钮<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://s

lanrenxiaowen的博客 3万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ViewPager禁止滑动切换和去除切换时动画效果

自定义ViewPager,简单修改几个方法即可,直接上代码: public class MyViewPager extends ViewPager { public MyViewPager(Context context) { super(context); } public MyViewPager(Context context, AttributeS

zhang___yong的博客 1万+

ViewPager使用详解和相关技巧之禁止滑动和滑动到最后一条时的监听等方法

ViewPager在开发中的使用频率非常的高,此做个总结,本文包括以下几方面: ViewPager的简介和作用 ViewPager的适配器 ViewPager实现小圆点指示器效果 ViewPager禁止滑动 ViewPager滑动到最后一条再次滑动的监听 1.ViewPager的简介和作用 ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前

AndroidFlying007的博客 5066

ViewPager禁止手势滑动、解决和子View的滑动冲突

要实现ViewPager禁止手势滑动效果,或者子View与ViewPager滑动冲突时,可以用如下方法解决:     自定义一个ViewPager,继承自ViewPager,重写onInterceptTouchEvent方法,返回false。再设置ViewPager的onTouchListener。       代码如下: @Override public boolean

fayedh的专栏 4260

ViewPager 取消滑动效果,禁止手指滑动

重写viewPager/** * Created by Bellion on 2016/3/30. */ public class CustomViewPager extends ViewPager { private boolean noScroll = false; public CustomViewPager(Context context, AttributeSet

GrondBellion的博客 2344

Android 禁止Viewpager左右滑动

第一步:创建一个自定义工具类CustomViewPager public class CustomViewPager extends ViewPager { private boolean isCanScroll = true; public CustomViewPager(Context context) { super(context); } public CustomViewPager(Context context, AttributeSe.

weixin_42630638的博客 905

Android轮播图-自定义无限滚动的广告Banner控件

今天闲来无事,梳理一下关于Android中广告banner图的一些技巧。 一般来说,我们的广告Banner要满足这样几个条件: Banner单个Item无限循环 自动滚动 响应单独item点击事件 触摸禁止滑动 指示条 画廊效果 ok,下面我们就针对这几点一一来进行分析 Banner单个Item无限循环 首先我们要实现一个自动滚动和手动均可滚动的Banner,很显然,我们需要使用...

xiaomi987的专栏 2635

禁止ViewPager滑动

实现如下: public class NoScrollViewPager extends ViewPager { public NoScrollViewPager (Context context) { super(context); } public NoScrollViewPager (Context context, AttributeSet ...

weixin_30865427的博客 63

Android-ViewPager禁止左滑(右滑)

Android-ViewPager禁止左滑(右滑)

止水 8575

android viewpager 滑动分页以及禁止划屏 (模拟新浪)

在第一篇中,我介绍了ViewPager的应用以及禁用滑向下一页.     这一篇将之加工一下,模拟实现新浪里面的功能,vierpager 分页.     在新浪微博消息一栏中是这样的(注意看title):                      上部分页栏可以用gridview来实现,不过为了省事在这就用textview代替了.  贴出代码: /*** * ViewPager

jj120522的专栏 9547
上一篇: Fragment切换无数据
下一篇: Oracle 递归查询SQL
是阿秋吖
博客等级 码龄10年 7粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值