Scroller简介

Android的Scroller介绍 以提供的起始点和将要滑动的距离开始滚动。滚动会使用缺省值250ms作为持续时间。 参数 startX 水平方向滚动的偏移值,以像素为单位。负值表明滚动将向左滚动 startY 垂直方向滚动的偏移值,以像素为单位。负值表明滚动将向上滚动 dx 水平方向滑动的距离,负值会使滚动向左滚动 dy 垂直方向滑动的距离,负值会使滚动向上滚动 public void startScroll (int startX, int startY, int dx, int 阅读详情

Scroller简介

在SlidingMenu项目中为了实现控件的滑动,需要用到Scroller类来实现缓慢的滑动过程,至于有人说View类可以直接调用scrollTo()方法,
这里scrollTo()方法也能实现移动,但是它的移动是很快一下子就移过去了,就像穿越一样,直接从现实回到了过去,而Scroller类能够实现过程的移动。
可以理解为一步步的走。

  1. 查看Scroller源码

    public class Scroller  {
        //...
    }

    发现Scroller类并不是View的子类,只是一个普通的类,这个类中封装了滚动的操作,记录了滚动的位置以及时间等。
    该类有两个重要的方法:

    • computeScrollOffset():
      文档的说明为Call this when you want to know the new location.查看源码可以发现,如果在移动到指定位置后就会返回false.正在移动的过程中返回true。
    • startScroll():
      该方法的内部实现,并没有具体的移动方法,而是设置了一些移动所需的数据,包括移动持续的时间、开始位置、结束位置等。从而我们可以知道调用Scroller.startScroll()方法并没有真正的移动,而是设置了一些数据。
  2. Scroller.startScoll()是如何与View的移动相关联呢?在View的源码中:

    /**
     * Called by a parent to request that a child update its values for mScrollX
     * and mScrollY if necessary. This will typically be done if the child is
     * animating a scroll using a {@link android.widget.Scroller Scroller}
     * object.
     */
    public void computeScroll() {
    }

    通过注释我们可以看到该方法又父类调用根据滚动的值去更新View,在使用Scroller的时候通常都要实现该方法。来达到子View的滚动效果。
    继续往下跟发现在draw()方法中回去调用computeScroll(),而draw()方法会在父布局调用drawChild()的时候使用。

  3. 具体关联
    通过上面两步大体能得到Scroller与View的移动要通过computeScroll()来完成,但是在究竟如何进行代码实现。
    Scroller.startScroll()方法被调用后会储存要滚动的起始位置、结束位置、持续时间。所以我们可以在computeScroll()方法中去判断一下当前是否已经滚动完成,如果没有滚动完成,
    我们就去不断的获取当前Scroller的位置,根据这个位置,来把相应的View移动到这里。

    public void computeScroll() {
        if (mScroller.computeScrollOffset()) {
            //如果还没有滚动完成,我们就去让当前的View移动到指定位置去
            mCenterView.scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
            //移动完后,我们应该继续调用computeScoll方法去获取并且移动当前View。所以我们调用invalidate方法去请求重绘,这样父类就会调用computeScroll
            postInvalidate();
        }
    }

  • 邮箱 :charon.chui@gmail.com
  • Good Luck!
Scroller的fling方法详解 Scroller概述 scroller的作用: 作为一个developer,要有看官方文档的习惯,文档链接。 关于scroller的作用我就不叙述了,google一下有太多的介绍 案例分析自定义一个viewgroup,在viewgroup里面有一个能滑动的view,且手指必须按在view上才能生效,松手后能缓慢的停下来; 分析:滑动view首先想到的是使用Scrooler(ViewDragHel 阅读详情

相关推荐

vue-scroller

vue-scroller移动端下拉加载组件 vue-scroller移动端下拉加载组件 vue-scroller移动端下拉加载组件

Scroller全认知,对于Scroller 你真的了解吗?

这篇文章非常长...长到了已经超出一篇文章的限制,正因为如此,这篇文章把Scroller探寻的非常透彻,不管你熟不熟悉Scroller都值得一学。 介绍 给未使用过scroller的人说的话: Scroller是一个跟滑动有关的类(大家都这么说(大家:我不承认!????)),很多滑动的操作可以借助Scroller来完成,而且很多有滑动效果的框架啊什么的,都是借助他来完成的,所以如果你们掌握了Scroller类,也能制作那些有意思的滑动效果。 给使用过Scroller的人说的话: 你们可

冯旭的博客 4090

山东专升本计算机网络基础知识点 --- 计算机网络基础

计算机网络是指将一群具有独立\textcolor{WildStrawberry}{独立}独立功能的计算机通过通信设备及传输媒体等互联起来,在通信软件的支持下,实现计算机间资源共享、信息交换或协同工作\textcolor{WildStrawberry}{资源共享、信息交换或协同工作}资源共享、信息交换或协同工作的系统。计算机网络是计算机技术和通信技术紧密结合的产物\textcolor{WildStrawberry}{计算机网络是计算机技术和通信技术紧密结合的产物}

z339521的博客 2815

图片滚轮插件-SCROLLER

Scroller为我们提供了一个遮罩成圆形图片的jquery特效,鼠标移动到某张图片上的时候放大,可以用来做图片导航菜单,可以横向排列或纵向排列 插件信息 官网:http://www.jscraft.net/plugins/scroller.html Demo1:http://www.jscraft.net/demo/plugins/scroller/index.html Demo

chinet_bridge的专栏 799

零基础玩转华为AP 4050DN-HD:FAT模式家庭无线网络配置实战

本文为零基础用户提供华为AP 4050DN-HD从FIT模式转换为FAT模式的完整实战教程。详细介绍了固件升级、模式转换以及配置家庭无线网络(包括路由、DHCP、Wi-Fi和NAT)的每一步操作,帮助用户将企业级瘦AP改造为高性能家庭胖AP,打造稳定可靠的家庭网络环境。

weixin_29196613的博客 636

飞控算法-姿态解算之互补滤波

飞控乱入之姿态解算 姿态解算是通过读取各个传感器的数据进行融合最终得到当前飞行器的姿态,姿态通常用Euler角(Roll-Pitch-Yaw)来表示 姿态解算框架 姿态解算的数据源可来自于陀螺仪或加速度计,他们分别都可以得到当前姿态,但实际上他们都有各自的传感器性能的优缺点,需要取长补短,进行数据融合才能得到真实的姿态,这种方法简称 互补滤波 算法 传感器特性 互补滤波 姿态解...

GoolyOh的专栏 1万+

探索高效滚动新时代:Scroller,轻量级内容滚动解决方案!

探索高效滚动新时代:Scroller,轻量级内容滚动解决方案! 在快速发展的网页设计领域,流畅的用户体验是任何网站或应用成功的关键之一。Scroller,一款高性能、低体积(仅4KB压缩后)且无需依赖其他库的滚动增强工具,正是为了解决这一核心需求而生。 项目介绍 Scroller为你的网页内容浏览带来革命性的体验升级。通过优化滚动性能和提供高度自定义的配置选项,它使得内容展示既优雅又灵活。这款开源...

gitblog_00068的博客 566

SPSS操作(五):主成分分析

1、将数据导入spss,并定义变量,将铁路运输业职工人数(人)、城市公共交通业职工人数(人)、邮政业职工人数(人)、电信和其他信息传输服务业职工人数(人)、客运量(万人)、接待入境旅游人数(万人次)、普通高校师生比(%)、星级住宿业营业额(亿元)分别定义为x1,x2,x3,x4,x5,x6,x7,x8 如图: 2、对数据进行标准化处理 ①选择【分析】—【描述统计】—【描述】 ②添加要标准化的变量,勾选【将标准化值另存为变量(Z)】,再点确定 ③返回原来的数据窗口就可以看见标准化后的变量了 3、SPS

My_daily_life的博客 8万+

Scroller使用

使用Scroller并不能得到滑动的效果,它只是“存储“了View滚动的数据; 使View滑动还是要借助scrollTo和scrollBy两个方法来实现的。 public class MyScrollerLinearLayout extends LinearLayout { private Scroller scroller; public MyScrollerLinearLayo

hello_1s的博客 552

告别Docker Desktop!Colima在Mac上的5分钟极速安装与配置指南(M1芯片实测)

本文详细介绍了如何在Mac(尤其是M1芯片)上快速安装和配置Colima,作为Docker Desktop的免费替代品。通过优化配置和实战指南,帮助开发者提升容器运行效率,减少资源占用,实现丝滑的开发体验。

weixin_28839601的博客 446

Delphi 13 Beta初体验:手把手教你安装RAD Studio Ganymede,并实测新条件运算符

本文详细介绍了Delphi 13 Beta(代号Ganymede)的安装步骤和新特性,重点解析了新增的条件运算符语法。通过实测对比,展示了64位IDE的性能提升和新语法在代码简洁性上的优势,为开发者提供了从安装到实战的完整指南。

weixin_30399821的博客 205

Android Scroller简介

翻译自:http://developer.android.com/reference/android/widget/Scroller.html android.widget.Scroller是用于模拟scrolling行为,它是scrolling行为的一个帮助类。通过它的startScroll(intstartX, intstartY, intdx, int dy, int durati

xuhuan_wh的专栏 500

SAP UI5 和 Fiori 的一些小技巧合集 - 持续更新中

本文介绍笔者从事 SAP UI5 和 Fiori 开发多年以来,积累的一些经验和小技巧。会保持更新。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 915

Scroller类简介

Scroller 在SlidingMenu项目中为了实现控件的滑动,需要用到Scroller类来实现缓慢的滑动过程,至于有人说View类可以直接调用scrollTo()方法,这里scrollTo()方法也能实现移动,但是它的移动是很快一下子就移过去了,就像穿越一样,直接从现实回到了过去,而Scroller类能够实现过程的移动。可以理解为一步步的走。 查看Scroller源码  pub

896

【2DWT:2维离散小波变换(附Pytorch代码)】

图像信号具有非平稳特性,无法使用一种确定的数学模型来描述,而小波变换的多分辨率分析特性很好地解决了这个问题。小波变化的多分辨率特性使其既可以高效描述图像的平坦区域(低频信息、全局信息),也可以有效处理图像信号的局部突变(高频信息,即图像的边缘轮廓等部分)。小波变换在空域和频域同时具有良好的局部性,使其可以很好地聚焦到图像的任意细节。

NorthSmile的博客 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

android scroll时间,安卓开发之Scroller.startScroll()方法简介

上篇说到,可以使用scrollBy和scrollTo移动View,这里产生一个问题,加入一个View在屏幕的左上角即(0,0)位置,他调用scrollTo(-300,-300)时,会立即跳过去,显得很突兀,如何让他平缓地划过去呢?就可以用本篇的方法了。使用方法:int startX;//滑动动作的起始点x坐标int startY;//滑动动作的起始点y坐标int dx; //x轴偏移量向左为...

weixin_39569894的博客 730

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Android Scroller简介 ---- 界面滚动

android.widget.Scroller是用于模拟scrolling行为,它是scrolling行为的一个帮助类。我们通常通过它的 startScroll(int startX, int startY, int dx, int dy, int duration) 函数来设置一个scrolling行为模型,即在 int duration (单位为毫秒)时间的内从int start

962

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Scroller】scrollTo scrollBy startScroll computeScroll 自定义ViewPage 简介 示例

简介android.widget.Scroller是用于模拟scrolling行为,它是scrolling行为的一个帮助类。我们通常通过它的startScroll函数来设置一个 scrolling行为模型,即在 duration 毫秒时间内从 int startX, int startY 这个点起向X和Y方向分别滚动 int dx 和 int dy 个像素;或者通过它的fling函数来设...

weixin_30793643的博客 107

Android Scroller完全解析,关于Scroller你所需知道的一切

转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/48719871 2016大家新年好!这是今年的第一篇文章,那么应优快云工作人员的建议,为了能给大家带来更好的阅读体验,我也是将博客换成了宽屏版。另外,作为一个对新鲜事物从来后知后觉的人,我终于也在新的一年里改用MarkDown编辑器来写博客了,希望大家在我的博客里也能体验到新年新...

郭霖的专栏 11万+

Android Scroller 是如何运行的

我们利用Scroller来实现一个SlidingPanel,可以实现左侧和右侧都能侧滑当然,我们需要定义三个View,并且加入到布局中//左侧菜单//中间内容//右侧菜单// 省略一些代码接下来我们创建一个Scroller,使其可以匀减速运动我们按正常方式测量和布局,但是左侧菜单和右侧菜单不能覆盖整个屏幕,这里给其宽度为 0.8f * screenWidth,布局按从左到右布局即可@Override@Overridet,

star_nwe的博客 1062
上一篇: ListView专题
下一篇: ScrollingTabs
CharonChui
博客等级 码龄12年 66粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值