在《ViewDragHelper的简单分析(一)》这篇博客颇为详细的说明了 ViewDragHelper的工作原理及在拖动过程中重写CallBack的几个相关方法对拖动过程加以控制,其核心拖动原理就是对offsetLeftAndRight/offsetTopAndBottom的应用。ViewDragHelper的控件其实很好用,网上查查资料或者自己静下来研读一下它的源码很快就可以上手,当我基本看完了它的源码并完成了第一篇博客后就琢磨着怎么利用它写个自定义的简单控件。记得我琢磨过qq聊天列表的侧滑功能是怎么实现的,并试着完成一下,在没有了解ViewDragHelper的时候基本上没什么思路,不过看了ViewDragHelper的实现原理之后或许是灵机一动,就尝试着用它来实现侧滑功能,一点一点完善算是完成了吧。本篇博客就来详细说明一下它的实现过程,估计博文有点长,如果觉得麻烦或者啰嗦的话可以直接下载博文最后的demo链接自己研究和修改。闲言少叙,书归正传!

先说说核心思路吧,通篇围绕着就是核心思路在做扩展来完善侧滑功能:因为是水平移动的,所以核心原理就是在合适的时机调用offsetLeftAndRight。基本思路两个水平左右排列的View(左边的为leftView,右边的为rightView),当拖动leftView移动dx距离的时候,让rightView.offsetLeftAndRight(dx);同理当拖拽rightView移动dx的距离的时候,让leftView.offsetLeftAdnRight(dx);很简单吧?说了基本原理和思路下面就一步一步来实现怎么处理的吧。

1)重写onLayout,实现leftView和ri

Android ViewDragHelper的简单分析及应用(二)相关推荐

  1. Android Handler机制简单分析

    丨版权说明 : <Android Handler机制简单分析>于当前CSDN博客和乘月网属同一原创,转载请说明出处,谢谢. 本文一切从简,将围绕以下流程展开叙述: what why how ...

  2. Android事件传递简单分析

    1.Activity事件处理 package com.example.eventdemo01;import androidx.appcompat.app.AppCompatActivity;impor ...

  3. 可能是最详细的Android图片压缩原理分析(二)—— 鲁班压缩算法解析

    本篇文章已授权微信公众号guolin_blog(郭霖)独家发布 稀土掘金链接 前言 通过上一篇,我们了解了一些关于图片压缩的基础知识,这篇文章我们主要讲解一下鲁班压缩的算法逻辑,很多博客都是从Gith ...

  4. Android工厂设计模式(简单工厂,工厂方法,抽象工厂,BitmapFactory简单工厂分析,Retrofit抽象工厂分析)

    文章目录 创建型设计模式(简单工厂,工厂方法,抽象工厂) 一.简单工厂模式 引出简单工厂模式 二.工厂方法模式 三.抽象工厂模式 Android源码中用到的工厂模式举例 一.BitmapFactory ...

  5. 为何说Android ViewDragHelper是神器 (二)

    前言: 通过上一篇的为何说Android ViewDragHelper是神器 (一)中我们简单了解了ViewDragHelper的用法,然后实现了一个"view随手指滑动而滑动"的 ...

  6. android开发中Settings结构简单分析

    Settings界面结构简单分析 Setting是android系统很重要的模块,这个模块并不是很复杂,这部分也一直在看,很多时候都是在看某个具体的选项,比如WLAN,蓝牙这样具体的源码,但是对于主界 ...

  7. 【RuoYi-Vue-Plus】学习笔记 46 - Redisson(十二)布隆过滤器 BloomFilter 简单分析

    文章目录 前言 参考目录 测试方法 配置说明 Demo 方法 功能调用流程分析 1.布隆过滤器的初始化 `tryInit` 1.1.创建布隆过滤器 1.2.初始化布隆过滤器 1.2.1.计算 bit ...

  8. Android 系统(261)---SIM卡不识或者掉卡简单分析

    SIM卡不识或者掉卡简单分析 1. 识卡大体过程 2.不识卡问题 不识卡的主要原因:  ①Modem发生错误,异常或者重启.  ②没有收到卡回的ATR  ③有收到卡回的ATR,但是后面跟卡通信出现异常 ...

  9. 掘金15W沸点简单分析(二)

    一.数据预处理与入库 获取到了原始数据之后,下一步就是清洗入库. 1.1 数据模型 因为是简单分析,所以只获取话题.用户.消息三块内容.具体如下: class Pins(object):"& ...

  10. 二维正态分布图python代码_Python数据可视化正态分布简单分析及实现代码

    Python说来简单也简单,但是也不简单,尤其是再跟高数结合起来的时候... 正态分布(Normaldistribution),也称"常态分布",又名高斯分布(Gaussiandi ...

最新文章

  1. java 将单词转换为_java – 将int列表转换为单词
  2. python 开发版-MicroPython开发之物联网快速开发板
  3. weekly paper read
  4. MATLAB之相关函数
  5. jquery实现表格的多行删除
  6. 网易云信荣获2021年度智慧教育典型案例奖项,并入选《智慧教育发展及产业图谱研究报告》...
  7. volatile用法
  8. 配置windows 2003 ×××服务器
  9. 12.MongoDB之固定集合(Capped Collections)
  10. python3调用摄像头_教你如何利用python调用摄像头
  11. 风景照片转水彩画效果PS动作
  12. android FD泄露问题记录
  13. 计算机无法连接到wifi但手机可以使用,电脑连不上wifi但是手机可以连得上怎么解决...
  14. 法国科学家大脑计算机,最新发现:人类大脑的“人性基因”正加速进化
  15. ajax的readystate为3,为什么在做ajax时无法获得readyState 3(why can't get readyState 3 when doing a ajax)...
  16. MyEclipse 2016 的破解激活
  17. k短路(HDU6705)
  18. CiteSpace学习笔记(四)——功能区和参数区
  19. Mysql中FROM_UNIXTIME()和UNIX_TIMESTAMP()函数
  20. python制作有道翻译软件

热门文章

  1. jq移除一条html语句,jquery html()删除脚本标签
  2. python_四元数q转旋转矩阵R(已验证)
  3. 高斯过程和高斯过程回归
  4. 太真实了!工业界AI项目落地血泪教训总结
  5. 一个人学习3D视觉太痛苦了怎么办?
  6. 刚刚!老干妈发布警方通报:3人伪造印章与腾讯签协议已刑拘,腾讯:辣椒酱不香了...
  7. Django rest framework(7)----分页
  8. 20170810上课笔记
  9. Java基础语法三 输入输出
  10. 二分图最大匹配(匈牙利算法) URAL 1721 Two Sides of the Same Coin