一直对View的滚动了解的不深,说明白了吧也能说出个所以然来,所以我就花了点时间做了一个小小的总结,言归正传,view的滑动分为以下三种:

1)View本身不滚动,指滚动View的内容,这也是View类提供的原始方法,通过scrollTo和ScrollBy方法来实现。

2)使用动画,让View来产生滚动效果

3)通过动态的修改LayoutParams的margin等属性让View来产生滚动

本篇博客就简单的分析一下第一种情况,同时本文最后还会简单的提供了一个例子:

View本身就提供了scrollBy和scrollTo方法,其中scrollBy方法又是调用了scrollTo方法:

    public void scrollTo(int x, int y) {if (mScrollX != x || mScrollY != y) {int oldX = mScrollX;int oldY = mScrollY;//记录滚动的位置 mScrollX = x;mScrollY = y;invalidateParentCaches();onScrollChanged(mScrollX, mScrollY, oldX, oldY);if (!awakenScrollBars()) {postInvalidateOnAnimation();}}}public void scrollBy(int x, int y) 

Android View的滚动原理简单解析相关推荐

  1. Android View 测量流程(Measure)完全解析

    前言 上一篇文章,笔者主要讲述了DecorView以及ViewRootImpl相关的作用,这里回顾一下上一章所说的内容:DecorView是视图的顶级View,我们添加的布局文件是它的一个子布局,而V ...

  2. 邻近算法(KNN)原理简单解析

    邻近算法(KNN)原理简单解析 一.什么是邻近算法 1.1简介 1.2核心思想 1.3 算法流程 1.4 优缺点 二.实例演示KNN算法 一.什么是邻近算法 1.1简介 邻近算法,或者说K最近邻(KN ...

  3. 锐速与BBR的原理简单解析

    锐速与BBR的原理简单解析  4 前言 昨天,有一位朋友在我的文章下留言说,锐速和BBR不都是一样,是拥塞算法嘛.因为这方面需要讲的东西比较多,所以我还是专门水一篇文章吧. 锐速 参考资料: http ...

  4. Android View与GroupView原理以及其子类描述

    简介 View是Android UI组件的基类,ViewGroup是容纳UI组件的容器,ViewGroup本身也是从View派生出来的. 简单的说,Android UI界面是由View和ViewGro ...

  5. android的布局流程,Android View 布局流程(Layout)全面解析

    前言 上一篇文章,笔者详细讲述了View三大工作流程的第一个,Measure流程,如果对测量流程还不熟悉的读者可以参考一下上一篇文章.测量流程主要是对View树进行测量,获取每一个View的测量宽高, ...

  6. Android View的事件分发机制解析

    作者:网易·周龙 最近刚看完android-Ultra-Pull-To-Refresh下拉刷新的源码,发现在写自定义控件时,对于View的事件的传递总是搞不太清楚,而View事件的分发机制,又是解决可 ...

  7. 全文搜索原理简单解析

    文前声明:本人只是知识的搬运工,文中许多知识和观点大多数都是来自于网络或书本,因为没有记录的习惯学习研究完,便忘记名称了,如若还记得,在文后自会添加备注. 注:这是本人的第一篇薄文,水平相形见拙,有错 ...

  8. android view的绘制原理,SurfaceView 原理

    Preview Q1: 啥是SurfaceView? [一个自带surface 画布的view] [能在子线程中做UI操作] Q2:在Activity 中 内嵌 SurfaceView的情况下 , U ...

  9. Word2Vec原理简单解析

    前言 词的向量化就是将自然语言中的词语映射成是一个实数向量,用于对自然语言建模,比如进行情感分析.语义分析等自然语言处理任务.下面介绍比较主流的两种词语向量化的方式: 第一种即One-Hot编码 是一 ...

  10. 存储过程原理简单解析

    1.什么是存储过程? 将一组预先编译好的SQL语句的集合,存放在一个特定的文件中.类似于JAVA中的方法. 2.存储过程的工作原理 将存储过程预先编译好的SQL语句集合称为集合A,里面包含SQL1.S ...

最新文章

  1. 测试用例设计白皮书--正交实验设计方法
  2. UVa10000 - Longest Paths(为什么是WA)
  3. Eclipse快捷键:最常用且高效的快捷键
  4. 无刷电机和有刷电机的详解区别
  5. 1592E - Скучающий Бакри
  6. SPH(光滑粒子流体动力学)流体模拟实现四:各向异性(Anisotropic)表面光滑(2)
  7. Nginx SSI指令配置详解
  8. redis mysql 雪崩_Redis缓存雪崩、缓存穿透、并发等5大难题,你有没有解决方案
  9. matlab rand函数
  10. SpringMVC中的九大组件
  11. 字体怎么安装到vivo_老人用手机遇到操作麻烦?vivo远程协助及时解决问题
  12. 【SSM -MyBatis篇03】MyBatis Generator(MBG)配置属性详解(基于MyBatis3) - 逆向生成 - 配置MBG模板
  13. 哈工大中文分词系统ltp4j使用总结
  14. 集成电路经典资料分享
  15. 坯子库怎么导入插件_坯子库插件下载|
  16. 一个双向转换火星文的玩具
  17. 程序员用300行代码,让外婆实现语音搜索购物
  18. 登录onedrive显示无法连接服务器,Win10专业版系统下OneDrive无法登录提示连接到OneDrive时出现问题怎么办...
  19. JS中find方法的使用
  20. json转换工具Jackson

热门文章

  1. Spring:pom.xml中引入依赖发红解决方案
  2. Cesium:结合天地图实现中文定位
  3. 面向对象(Python):学习笔记之模块和包
  4. FFmpeg学习(5)——视频加水印
  5. 最小对/优先队列(C语言实现)
  6. 最新!2020录取分数百强大学榜发布:清华文科第一,北大理科第一!
  7. sgu 139 Help Needed!
  8. maven修改本地仓库地址配置文件
  9. python学习点滴记录-Day14-前端基础之javascript
  10. POJ 2502 Subway dij