0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HarmonyOS应用开发-ETSsrcoll滑动组件

鸿蒙时代 来源:鸿蒙时代 作者:鸿蒙时代 2022-03-16 11:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

HarmonyOS应用开发-ETSsrcoll滑动组件

说明:
该组件从API version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

可滚动的容器组件,当子组件的布局尺寸超过父组件的视口时,内容可以滚动。
接口
Scroll(scroller?: Scroller)

属性

HarmonyOS应用开发-ETSsrcoll滑动组件

Scroller
可滚动容器组件的控制器,可以将此组件绑定至容器组件,然后通过它控制容器组件的滚动,目前支持绑定到List和Scroll组件上。

导入对象
.scroller: Scroller = new Scroller()

scroller.scrollTo
scrollTo(value: { xOffset: number | string, yOffset: number | string, animation?: { duration: number, curve: Curve } }): void
滑动到指定位置。

scroller.scrollEdge
scrollEdge(value: Edge): void
滚动到容器边缘。

scroller.scrollPage
scrollPage(value: { next: boolean}): void
滚动到下一页或者上一页。

scroller.currentOffset
scroller.currentOffset(): Object
返回当前的滚动偏移量。

scroller.scrollToIndex
scroller.scrollToIndex(value: number): void
滑动到指定Index。

事件

HarmonyOS应用开发-ETSsrcoll滑动组件

示例:

@Entry
@Component
struct ScrollExample {
  scroller: 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() {
          ForEach(this.arr, (item) => {
            Text(item.toString())
              .width('90%').height(150).backgroundColor(0xFFFFFF)
              .borderRadius(15).fontSize(16).textAlign(TextAlign.Center)
              .margin({ top: 10 })
          }, item => item)
        }.width('100%')
      }
      .scrollable(ScrollDirection.Vertical).scrollBar(BarState.On)
      .scrollBarColor(Color.Gray).scrollBarWidth(30)
      .onScroll((xOffset: number, yOffset: number) => {
        console.info(xOffset + ' ' + yOffset)
      })
      .onScrollEdge((side: Edge) => {
        console.info('To the edge')
      })
      .onScrollEnd(() => {
        console.info('Scroll Stop')
      })

      Button('滑动')
        .onClick(() => { // 点击后下滑100.0距离
          this.scroller.scrollTo({ xOffset: 0, yOffset: this.scroller.currentOffset().yOffset + 100 })
        })
        .margin({ top: 10, left: 20 })
      Button('返回顶部')
        .onClick(() => { // 点击后回到顶部
          this.scroller.scrollEdge(Edge.Top)
        })
        .margin({ top: 60, left: 20 })
      Button('下一页')
        .onClick(() => { // 点击后下滑到底部
          this.scroller.scrollPage({ next: true })
        })
        .margin({ top: 110, left: 20 })
    }.width('100%').height('100%').backgroundColor(0xDCDCDC)
  }
}



审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Version
    +关注

    关注

    0

    文章

    32

    浏览量

    7963
  • 组件
    +关注

    关注

    1

    文章

    551

    浏览量

    18927
  • HarmonyOS
    +关注

    关注

    80

    文章

    2146

    浏览量

    35574
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HarmonyOS 5】鸿蒙页面和组件生命周期函数

    HarmonyOS 5】鸿蒙页面和组件生命周期函数 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、生命周期阶段: 创建阶段 build
    的头像 发表于 07-11 18:24 790次阅读

    HarmonyOS 5】金融应用开发鸿蒙组件实践

    HarmonyOS 5】金融应用开发鸿蒙组件实践 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财#
    的头像 发表于 07-11 18:20 744次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】金融应用<b class='flag-5'>开发</b>鸿蒙<b class='flag-5'>组件</b>实践

    LoadingProgress组件的使用##HarmonyOS应用开发##

    ​  在应用开发的过程中,经常有需要表示“加载中”或者“请等待”的这么一个状态提示,我原来的做法是会通过找一张gif图片来表示这一状态,但是如果使用gif图片的话,会有以下几个问题 1. 在不同页面
    的头像 发表于 06-30 17:26 426次阅读

    HarmonyOS NEXT应用元服务布局优化长列表使用懒加载与组件复用

    超过两屏的列表情况,并且当内容布局相对固定的情况下,配合组件复用的方式来减少滑动过程中的组件创建。在长列表加载性能优化中,介绍了较为详细的实践案例,这里我们仅引用一些关键性能收益数据。 懒加载 针对
    发表于 06-27 16:08

    HarmonyOS实战:Tab顶部滑动悬停功能实现

    日常开发过程中,遇到这种 Scroll 嵌套 List 列表滑动顶部悬停的场景十分常见,在鸿蒙开发时也正好实现了这个功能,本篇文章将带你一步步实现 Tab 顶部悬停的效果,建议点赞收藏!
    的头像 发表于 06-24 17:07 287次阅读

    HarmonyOS基础组件:Button三种类型的使用

    简介 HarmonyOS在明年将正式不再兼容Android原生功能,这意味着对于客户端的小伙伴不得不开始学习HarmonyOS开发语言。本篇文章主要介绍鸿蒙中的Button使用。 Harmon
    的头像 发表于 06-09 15:48 2152次阅读
    <b class='flag-5'>HarmonyOS</b>基础<b class='flag-5'>组件</b>:Button三种类型的使用

    HarmonyOS实战:组件化项目搭建

    ?本文将详细讲解HarmonyOs组件化项目搭建的全过程,带领大家实现一个组件化项目。 项目创建 首先创建一个项目工程,点击开发工具DevEco-Stdio的****File 选项,选
    的头像 发表于 06-09 14:58 516次阅读
    <b class='flag-5'>HarmonyOS</b>实战:<b class='flag-5'>组件</b>化项目搭建

    HarmonyOS应用闪屏问题性能优化三

    列表为滑动到边缘无效果,否则无法触发pullToRefresh组件的上滑下拉方法。 .edgeEffect(EdgeEffect.None) } 可能原因 ForEach提供了一个名为
    发表于 05-19 14:36

    Get这个秘籍,鸿蒙原生应用页面滑动丝滑无比

    的10多位伙伴解决了滑动白块问题。 目前,该方案的相关代码库和文档已通过开源社区及技术平台开放,开发者可访问Gitee、思否、51CTO、CSDN等平台获取详细指南。 Web页面全局组件复用库:预加载
    发表于 03-06 14:41

    HarmonyOS 应用开发赋能套件:鸿蒙原生应用开发的 “神助攻”

    代码和开发实践等,这些问题让他们的开发工作容易走弯路。   为帮助开发者更高效地掌握HarmonyOS应用开发技能,官方推出了
    发表于 02-17 16:37

    解决HarmonyOS应用中Image组件白块问题的有效方案

    HarmonyOS应用开发过程中,通过Image组件加载网络图片时,通常会经历四个关键阶段:组件创建、图片资源下载、图片解码和刷新。当加载的图片资源过大时,Image
    的头像 发表于 02-17 10:08 1565次阅读
    解决<b class='flag-5'>HarmonyOS</b>应用中Image<b class='flag-5'>组件</b>白块问题的有效方案

    鸿蒙原生页面高性能解决方案上线OpenHarmony社区 助力打造高性能原生应用

    高性能鸿蒙原生应用。 Nodepool:优化页面滑动流畅性Nodepool旨在解决应用页面滑动卡顿问题。开发中,相似页面因业务和代码差异,组件复用性差,引发卡顿、丢帧,影响用户体验。N
    发表于 01-02 18:00

    HarmonyOS NEXT 应用开发练习:智能视频推荐

    一、整体思路 本DEMO展示了如何在HarmonyOS NEXT平台上开发一个智能视频推荐应用。应用通过模拟的用户偏好数据,为用户推荐可能感兴趣的视频。用户可以通过滑动屏幕查看推荐的视频列表,并点击
    发表于 01-02 16:26

    HarmonyOS开发指导类文档更新速递(下)

    伴随着HarmonyOS 5.0.0 Release、HarmonyOS 5.0.1 Release版本的发布,HarmonyOS官网文档也带来了不少上新内容。本期HarmonyOS
    的头像 发表于 12-30 09:54 2132次阅读
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>开发</b>指导类文档更新速递(下)

    HarmonyOS开发指导类文档更新速递(上)

    伴随着HarmonyOS 5.0.0 Release版本的发布,HarmonyOS官网文档也带来了不少上新内容。本期HarmonyOS NEXT开发者资料直通车将从文档更新角度为
    的头像 发表于 12-30 09:50 1748次阅读
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>开发</b>指导类文档更新速递(上)