首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏向治洪

    Scroller简介

    Scroller简介 在SlidingMenu项目中为了实现控件的滑动,需要用到Scroller类来实现缓慢的滑动过程,至于有人说View类可以直接调用scrollTo()方法, 这里scrollTo( 查看Scroller源码 public class Scroller { //... } 发现Scroller类并不是View的子类,只是一个普通的类,这个类中封装了滚动的操作,记录了滚动的位置以及时间等 从而我们可以知道调用Scroller.startScroll()方法并没有真正的移动,而是设置了一些数据。 Scroller.startScoll()是如何与View的移动相关联呢? Scroller} * object. */ public void computeScroll() { } 通过注释我们可以看到该方法又父类调用根据滚动的值去更新View,在使用Scroller Scroller.startScroll()方法被调用后会储存要滚动的起始位置、结束位置、持续时间。

    78090发布于 2018-01-26
  • 来自专栏码客

    Android Scroller用法

    Android里Scroller类是为了实现View平滑滚动的一个Helper类。 通常在自定义的View时使用,在View中定义一个私有成员mScroller = new Scroller(context)。 例子 举例说明,自定义一个CustomView,使用Scroller实现滚动 import android.content.Context; import android.util.AttributeSet Scroller mScroller; public CustomView(Context context, AttributeSet attrs) { super(context, attrs ); mScroller = new Scroller(context); } //调用此方法滚动到目标位置 public void smoothScrollTo(int fx, int fy

    1.4K10发布于 2019-10-22
  • 来自专栏学海无涯

    Android开发之Scroller

    什么是Scroller? 翻译为弹性滑动对象,可以实现View的弹性滑动动画,与Scroller相关的就是大家比较熟悉的scrollTo和scrollBy方法,可以用来实现View的滑动,但是它们的缺点就是瞬间完成,无法很平滑地过渡 ,而Scroller可以帮助我们很平滑地进行弹性滑动。 使用 一般使用在自定义View中较多,可以实现View的弹性滑动效果 1、自定义一个View,注释很详细 /** * 自定义View 里面有个Scroller 它能实现非常平滑的滚动效果 就像动画一样 Scroller.gif 注意点 Scroller本身并不能实现View的滑动,本质还是让View重绘,重绘中调用View的computeScroll方法,在该方法中进行滑动方法的具体实现,然后再调用重绘函数

    94350发布于 2018-04-24
  • 来自专栏俞其荣的博客

    深入解析Scroller滚动原理

    在书中的相关章节有介绍用Scroller来实现平滑滚动的效果。而我们今天就来探究一下为什么Scroller能够实现平滑滚动。 首先我们先来看一下Scroller的用法,基本可概括为“三部曲”: 创建一个Scroller对象,一般在View的构造器中创建: public ScrollViewGroup(Context context 根据“三部曲”中第一部,先来看看Scroller的构造器: public Scroller(Context context, Interpolator interpolator, boolean flywheel 的滑动没有结束;若返回false说明Scroller的滑动结束了。 其实Scroller的原理还是比较通俗易懂的。我们再来理清一下思路,以一张图的形式来终结今天的Scroller解析: Scroller的原理图 好了,如果有什么问题可以在下面留言。 Goodbye!

    1K10编辑于 2022-07-28
  • 来自专栏郭霖

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

    ,带你从源码的角度彻底理解,但是对于Scroller我还从来没有讲过,因此本篇文章我们就先来学习一下Scroller的用法,并结合事件分发和Scroller来实现一个简易版的ViewPager。 Scroller是一个专门用于处理滚动效果的工具类,可能在大多数情况下,我们直接使用Scroller的场景并不多,但是很多大家所熟知的控件在内部都是使用Scroller来实现的,如ViewPager、ListView Scroller的基本用法其实还是比较简单的,主要可以分为以下几个步骤: 1. 创建Scroller的实例 2. 调用startScroll()方法来初始化滚动数据并刷新界面 3. 首先在ScrollerLayout的构造函数里面我们进行了上述步骤中的第一步操作,即创建Scroller的实例,由于Scroller的实例只需创建一次,因此我们把它放到构造函数里面执行。 其实借助Scroller,很多漂亮的滚动效果都可以轻松完成,比如实现图片轮播之类的特效。

    1.9K60发布于 2018-01-08
  • 来自专栏每日一篇技术文章

    weex-20-scroller组件

    本节学习目标 掌握scroller组件的使用 概念 <scroller> 是一个竖直的,可以容纳多个排成一列的子组件的滚动器。 如果子组件的总高度高于其本身,那么所有的子组件都可滚动 使用途径 如果我们想要根组件也可以滑动的效果,就可以使用<scroller>组件 水平滚动的视图 多个滚动视图嵌套 注意事项 1.滑动组件默认方向为垂直 2.支持任意类型的 Weex 组件作为其子组件(除了cell组件,它只能用于list) 3.可以使用<loading>组件 和<refresh> 组件 4.垂直时,当子标签的高度没有超过scroller <scroller class="scroller" show-scrollbar='true' scroll-direction='horizontal' > 注意 1.如果你给<scroller loadmore 事件 <scroller class="scroller" show-scrollbar='true' scroll-direction='vertical' @loadmore="

    1.4K20发布于 2018-09-14
  • 来自专栏鸿蒙开发笔记

    ArkUI滚动类组件-Scroll、Scroller

    Scroll定义介绍interface ScrollInterface { (scroller? : Scroller): ScrollAttribute;}scroller:给 Scroll 绑定一个滚动控制器,该控制器可以控制子组件的各种滚动能力, Scroller 目前只支持绑定到 Scroll Scroller简单介绍Scroller 作为滚动容器组件的控制器,它提供了滚动子组件的各种能力,比如设置子组件滚动指定位置、滚动到底部以及滚动到下一页上一页等能力。 Scroller 定义如下:export declare class Scroller { scrollTo(value: { xOffset: number | string, yOffset 完整样例Scroll 结合 Scrollerr 完整样例如下所示:@Entry @Component struct ComponentTest { private scroller: Scroller

    1K10编辑于 2024-09-30
  • 来自专栏海怪的编程小屋

    造一个 react-infinite-scroller 轮子

    前言 无限滚动是一个开发时经常遇到的问题,比如 ant-design 的 List 组件里就推荐使用 react-infinite-scroller 配合 List 组件一起使用。 今天就带大家造一个 reac-infinite-scroller 的轮子吧。 props 暴露出来 将剩下的 props 透传给滚动元素 在 passProps 里添加 ref,开发者可以通过 ref 获取滚动元素 总结 这篇文章主要带大家过了一遍 react-infinite-scroller

    3.1K30编辑于 2022-03-29
  • 来自专栏Android开发小工

    View的位置参数及其Scroller类的理解

    获取这个常量:ViewConfiguration.get(getContext()).getScaledTouchSlop(); 4.Scroller的使用理解 我们先来看一段套路代码: Scroller scroller = new Scroller(getContext()); //缓慢滚动到制定位置 private void smoothScrollTo(int destX ,int ()){ scrollTo(scroller.getCurrX(),scroller.getCurrY()); postInvalidate(); (scroller.getCurrX(),scroller.getCurrY())。 ,而多次小幅度滑动就组成了弹性滑动,这就是Scroller的原理。

    88140发布于 2018-08-23
  • 来自专栏Android群英传

    onTouchEvent(二) 使用Scroller实现黏性滑动的ScrollView

    上一篇博文onTouchEvent(一) 你所必须知道的坐标详解介绍了onTouchEvent()手势控制相关的一些坐标概念,这篇文章结合上一篇内容加上Scroller实现一个简单的带黏性滑动的ScrollView 4这是配合Scroller使用的一个函数。 首先介绍下Scroller这个类,这个类是一个工具,并不是实际UI操作。 下面是一个不使用Scroller的Demo。 ? 差别很明显。 ? onMeasure()没什么好说的,遍历子view,测量子view。 onLayout ? 首先onTouchEvent()中调用了Scroller.startScroll()方法,该方法不涉及UI操作所以在后面调用了一次invalidate()让View去重绘,根据上面的computeScroll 既然手动调用invalidate()就会重绘,也就会调用到computeScroll(),里面再判断Scroller的差值计算是否完毕,未完毕则继续移动就这样循环直至偏移到最终坐标。

    1.2K30发布于 2018-07-20
  • 来自专栏Frank909

    不再迷惑,也许之前你从未真正懂得 Scroller 及滑动机制

    Scroller 出场 文章讲到这里的时候,Scroller 才出现,但我相信读者已经对迎接它做好了准备。 ? Scroller 只是一个普通的类,它封装了滚动事件。 Scroller scroller = new Scroller(context); scroller.startScroll(0,0,100,100); boolean condition = true 上面的示例,已经介绍了 Scroller 的基本用法,现在是时候对 Scroller 进行全面的分析了。 Scroller 全面介绍 Scroller 的创建 Scroller 有三个构造方法。 (1.2f); Scroller mScroller = new Scroller(context,interpolator); Scroller 启动 Scroller 启动动画通过调用这个两个方法中的一个 大家,一定想亲自尝试 Scroller 的 fling 效果。接下来,我们就来一次 Scroller 的完整实战。

    2K10发布于 2019-01-14
  • 来自专栏鸿蒙开发笔记

    HarmonyOS 开发实践——基于List和Scroller由简单到复杂列表布局开发实践

    : Scroller = new Scroller() //下部分左侧标题List(行标题) private bottomLeftScroller: Scroller = new Scroller() // 下部分右侧内容List(内容) private topRightScroller: Scroller = new Scroller() // 上部分右侧类型List(列标题) // 整体布局 build forEach(scroller => {                   if (scroller != item.scrollerArray! forEach(scroller => {           scroller.scrollTo({ xOffset: this.remainOffset, yOffset: 0 })         : Scroller = undefined // 内容行List绑定Scroller   private scrollCallBack?

    66820编辑于 2024-11-04
  • 来自专栏鸿蒙开发笔记

    鸿蒙开发实战案例:纵向横向列表联动案例

    效果图预览使用说明纵向划动列表,内容和行标题保持联动横向划动列表,内容和列标题保持联动实现思路本示例通过将每一个List绑定不同的Scroller对象,通过控制Scroller对象的滚动偏移量,使同一方向滚动的 private topListScroller: Scroller = new Scroller(); // 顶部列表(列标题)的滚动控制器private bottomLeftListScroller: Scroller = new Scroller(); // 底部列表左侧(行标题)的滚动控制器private bottomRightListScroller: Scroller = new Scroller Scroller对象。 数组,与左侧标题一一对应 showData.sub.forEach(element => { let scroller: Scroller = new Scroller();

    48510编辑于 2025-02-26
  • 来自专栏CSDNToQQCode

    HarmonyOS-UIAbitity-ScrollBar——【坚果派-红目香薰】

    接口 ScrollBar(value: { scroller: Scroller, direction?: ScrollBarDirection, state? : BarState }) 参数: 参数名 参数类型 必填 默认值 参数描述 scroller Scroller 是 - 可滚动组件的控制器。用于与可滚动组件进行绑定。 滚动条组件与可滚动组件通过Scroller进行绑定,且只有当两者方向相同时,才能联动,ScrollBar与可滚动组件仅支持一对一绑定。 示例代码 @Entry @Component struct ScrollBarExample { private scroller: Scroller = new Scroller() ] build() { Column() { Stack({ alignContent: Alignment.End }) { Scroll(this.scroller

    29110编辑于 2024-02-03
  • 来自专栏HarmonyOS点石成金

    鸿蒙开发:一个轻盈的上拉下拉刷新组件

    : Scroller = new Scroller() controller: RefreshController = new RefreshController() @Builder itemLayout (_this: ListUpAndDownPage) { List({ scroller: _this.scroller, space: 20 }) { ForEach(_this.testArray @Entry @Component struct WaterFlowUpAndDownPage { scroller: Scroller = new Scroller() controller : _this.scroller }) } build() { Column() { LitheRefresh({ scroller : Scroller = new Scroller() dataSource: WaterFlowDataSource = new WaterFlowDataSource() private

    36810编辑于 2025-03-22
  • 来自专栏鸿蒙开发笔记

    纯血鸿蒙APP实战开发——二级联动

    一二级列表分别绑定不同的Scroller对象,一级列表(tagLists)绑定classifyScroller对象,二级列表绑定scroller对象。 @Componentexport struct SecondaryLinkExample { private classifyScroller: Scroller = new Scroller(); // 一级列表Scroller对象 private scroller: Scroller = new Scroller(); // 二级列表Scroller对象 build() { ... Row() { // 一级列表 List({ scroller: this.classifyScroller, initialIndex: 0 }) { ... = new Scroller(); // 一级列表Scroller对象// 根据二级列表索引值获取对应一级列表索引findClassIndex(index: number): number { ..

    45010编辑于 2024-12-29
  • 来自专栏设计模式

    Scorller的使用详解

    示例代码: private Scroller mScroller = new Scroller(context); … public void zoomIn() { // Revert any animation 提供了三个构造函数: Scroller(Context context) Create a Scroller with the default duration and interpolator. 使用默认的持续时间值和插值器创建一个Scroller Scroller(Context context, Interpolator interpolator) Create a Scroller with 使用指定的插值器创建一个Scroller,持续时间之还是默认的250 Scroller(Context context, Interpolator interpolator, boolean flywheel Scroller 官方文档也说了,Scroller负责收集滚动所需的数据,也就是说,Scroller本身并不负责“滚动”这个操作,滚动的操作是有View的scrollTo(x,y) 和scollerBy

    81910发布于 2020-12-15
  • 来自专栏各类技术文章~

    听说你还不会虚拟列表?原谅我来晚了

    如何使用虚拟列表 目前虚拟列表已经有很多知名的库,如 vue-virtual-scroller、vue-virtual-scroll-list、react-virtualized 等, 下面就给大家介绍一下 vue-virtual-scroller 这个优秀库的使用方法,然后再带大家实现一个简版的虚拟列表。 安装 npm install --save vue-virtual-scroller 复制代码 RecycleScroller组件 适用于列表每一项高度确定的情况,高度可设置成相同,也可单独配置每一项高度 ' import 'vue-virtual-scroller/dist/vue-virtual-scroller.css' export default { components: { RecycleScroller ' import 'vue-virtual-scroller/dist/vue-virtual-scroller.css' export default { components: { DynamicScroller

    1.4K30编辑于 2021-12-03
  • 鸿蒙 Scroll 组件深度解析:丝滑滚动交互全场景实现

    : Scroller = new Scroller(); private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; build() { Stack({ alignContent: Alignment.TopStart }) { Scroll(this.scroller) { Column() { 对象实现精准滚动定位:@Entry@Componentstruct Index { scroller: Scroller = new Scroller; private arr: number[] private arr: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; private scrollerForScroll: Scroller = new Scroller (); private scrollerForList: Scroller = new Scroller(); build() { Flex() { Scroll(this.scrollerForScroll

    57300编辑于 2025-06-28
  • 来自专栏个人路线

    【坚果派】HarmonyOS 以及OpenHarmony中如何选择图片,并显示在桌面上

    @ohos.file.picker'; @Entry @Component struct SelectPhotoPage { @State imgDatas: string[] = []; scroller : Scroller = new Scroller() // 获取照片url集 async getAllImg() { // let photoPicker = new picker.PhotoViewPicker ({ xOffset: 0, yOffset: this.scroller.currentOffset().yOffset + 100 }) }) Button(' back top') .onClick(() => { // 点击后回到顶部 this.scroller.scrollEdge(Edge.Top) }) } Scroll(this.scroller) { Column() { ForEach(this.imgDatas, item =>

    1.6K10编辑于 2023-08-10
领券