由于最近在做墨水屏的相关工作,ViewPager自带的滑动效果在墨水屏上表现的很不好,残影太重了。所以禁止自带的滑动效果,用接口来接管相关逻辑实现自处理。

import android.content.Context;

import android.util.AttributeSet;

import android.view.MotionEvent;

import androidx.annotation.NonNull;

import androidx.annotation.Nullable;

import androidx.viewpager.widget.ViewPager;

/**

* Created by Hu.Lei on 2019年11月28日, 0028.

* 禁止滑动

*/

public class NoSlidingViewPager extends ViewPager {

float beforeX = 0;

float lastX = 0;

public NoSlidingViewPager(@NonNull Context context) {

super(context);

}

public NoSlidingViewPager(@NonNull Context context, @Nullable AttributeSet attrs) {

super(context, attrs);

}

@Override

public boolean onInterceptTouchEvent(MotionEvent ev) {

int action = ev.getAction();

if (action == MotionEvent.ACTION_DOWN){

beforeX = ev.getX();

Utils.log("NoSlidingViewPager(ACTION_DOWN): x轴方向:beforeX --> " + beforeX);

} else if (action == MotionEvent.ACTION_UP){

lastX = ev.getX();

Utils.log("NoSlidingViewPager(ACTION_UP): x轴方向:beforeX --> " + beforeX + " lastX --> " + lastX);

if (beforeX == lastX){ // 点击事件

return super.onInterceptTouchEvent(ev);

} else {

if (beforeX > lastX){ // 向左滑动

if (listener != null){

listener.onLeftFling();

}

} else if (beforeX < lastX){ // 向右滑动

if (listener != null){

listener.onRightFling();

}

}

beforeX = 0;

lastX = 0;

return true;

}

}

return false;

}

public interface FlingListener{

void onLeftFling();

void onRightFling();

}

private FlingListener listener;

public void setFlingListener(FlingListener listener){

this.listener = listener;

}

}

android view禁用,Android 禁止ViewPager的自带滑动效果相关推荐

  1. android view flipper,Android之ViewFlipper的简单使用

    大家都使用过ViewPager,但是ViewPager还有一个兄弟,那就是ViewFlipper.两者的名字非常相似,我们可以将ViewPager理解成"一页一页的视图",View ...

  2. Android view变形,android仿变形金刚效果实现MatchView

    what?变形金刚!先看效果吧! MainActivity.javapackage com.lee.matchview; import com.example.matchview.R; import ...

  3. Android view.settran,Android RecyclerView从入门到玩坏

    目录 前言 基础使用 分隔线 点击监听 搭配CardView 更丰富的条目 增删条目 快速添加视图 让RecyclerView支持复杂视图 最后前言 RecyclerView在Android界面开发当 ...

  4. android view嵌套,Android RecyclerView嵌套RecyclerView点击事件

    RecyclerView嵌套RecyclerView点击事件遇到取值错乱的问题 其实问题根本就是咱们没有处理好被嵌套的那层recycleview的position 那么解决思路也很简单,想办法把被嵌套 ...

  5. android.view.surface,Android SurfaceView 源码分析及使用

    概述 SurfaceView 是 Android 中一种比较特殊的视图(View),它跟平时时候的 TextView.Button 最大的区别是它跟它的视图容器并不是在同一个视图层上,它的 UI 显示 ...

  6. android ViewPager 不带滑动效果切换item

    其实这是很简单的,但是今晚脑袋晕乎乎的 绕了一大圈,记录一下 以警同类人. 只需要在setCurrentItem传参数时这么写:mViewPager.setCurrentItem(item序号,fal ...

  7. 音乐歌单Android,仿网易云音乐歌单界面 Header滑动效果

    这是我的第一篇博客,做Android 开发2年多以来,曾经也有过写一些技术博客的想法,但因为有时候因为懒,有时候工作忙加班多而力不从心,所以迟迟没有开始写自己的博客.最近正好工作不忙,想写一些博客,记 ...

  8. android京东商城一级分类到二级分类的滑动效果,Android仿京东分类模块左侧分类条目效果...

    本文实例为大家分享了Android仿京东左侧分类条目效果的具体代码,供大家参考,具体内容如下 import android.app.Activity; import android.os.Bundle ...

  9. TabLayout+ViewPager实现选项卡动态滑动效果

    1. 前提准备 今天回顾了下TabLayout与ViewPager的联合使用,顺便写个demo来加深下理解.首先要明确TabLayout是design下的,并非系统原来的widget下的.所以首先在a ...

最新文章

  1. Vivado 随笔(5) 行为仿真(Behavior Simulation)相关事宜?
  2. linux tracepoint例子,tracepoint介绍
  3. Go标准库os/exec使用指南
  4. matlab深度学习_matlab使用贝叶斯优化的深度学习
  5. c语言学生成绩查询课设报告,C语言课设报告(学生考试成绩查询程序)【荐】.doc...
  6. 阿里巴巴对Java编程【Mysql】的规约
  7. Ubuntu下安装JDK1.8并配置开发环境
  8. mysql数据库中 pri_MySQL数据库管理——SQL指令集
  9. Linux内存管理宏观篇(五)物理内存:页面分配和释放页面
  10. Fedora 14 直接root登录
  11. SPSS(十五)spss之聚类分析(图文+数据集)
  12. 【民大Linux课件】Linux的基础操作1
  13. 微型计算机虚拟内存器件,内外存储器与缓存内存虚拟内存.ppt
  14. html css img 居中显示图片,css图片垂直居中 让html img图片垂直居中的三种方法
  15. 软件测试需要学什么?软件测试技能图谱
  16. MFO问题与MFEA算法
  17. Vue 之 使用umy-ui虚拟表格
  18. 【人工智能大作业】A*和IDA*搜索算法解决十五数码(15-puzzle)问题 (Python实现)(启发式搜索)
  19. 新加坡打造绿色数据中心任重道远
  20. 弘辽科技:淘宝怎么改发货时间?有什么发货规则?

热门文章

  1. response html 页面,使用response将html拼接页面写到当前浏览器端完成自动提交功能...
  2. centos mysql 设置_CentOS下MySql优化及安全设置centos
  3. 怎么打开外部文件_保存的DWG文件再次用CAD打开时提示文件损坏了怎么办?【AutoCAD教程】...
  4. 从零实现 SpringBoot 简易读写分离,也不难嘛!
  5. 每日一皮:这一定是“宅”的极致了...
  6. 不是每个打工人都能享受 996 的福报
  7. Kubernetes 使用 ceph-csi 消费 RBD 作为持久化存储
  8. ScheduledThreadPool中的Leader-Follow模式你知道不?
  9. Spring Boot Profile使用详解及配置源码解析
  10. powershell禁用计算机,PowerShell 因为在此系统中禁止执行脚本 解决方法