鸿蒙笔记--Scroll

        这一节了解一下Scroll控件,在鸿蒙(HarmonyOS)开发中,Scroll控件是一个重要的可滚动容器组件,它允许在子组件的布局尺寸超过父组件尺寸时提供滚动功能。

scrollable
含义:控制Scroll组件的滚动方向。
可选值:
ScrollDirection.Vertical:垂直滚动(默认值)。
ScrollDirection.Horizontal:水平滚动。

scrollBar:
含义:设置滚动条的状态。
可选值:
BarState.Auto:自动显示滚动条(默认值)。
BarState.On:始终显示滚动条。
BarState.Off:始终不显示滚动条。

scrollBarColor
含义:设置滚动条的颜色。
scrollBarWidth:
含义:设置滚动条的宽度。
edgeEffect
含义:设置滚动边缘的效果。
可选值:
EdgeEffect.None:无效果。
EdgeEffect.Spring:弹簧效果。
EdgeEffect.Fade:阴影效果。

enableScrollInteraction(API 10+):
含义:设置是否支持滚动手势。
可选值:
true:支持滚动手势(默认值)。
false:不支持滚动手势,但不影响通过控制器接口进行的滚动。
friction(API 10+):
含义:设置滚动时的摩擦力,影响滚动的速度和惯性。

栗子:

@Entry @Component struct ArkUITest {build() {Scroll() {Text('Text1').fontSize(26).size({width: 180, height: 40}) // 子组件的高度小于Scroll高度,不会触发滚动.backgroundColor('#aabbcc')}.width('100%').height(100).backgroundColor(Color.Pink)}
}
@Entry @Component struct ArkUITest {build() {Scroll() {// Scroll没有设置滚动方向,默认竖直方向滚动Column() {Text('Text1').fontSize(26).size({width: 180, height: 90}).backgroundColor('#aabbcc')Text('Text2').fontSize(26).size({width: 180, height: 90}).backgroundColor('#bbccaa')Text('Text3').fontSize(26).size({width: 180, height: 90}).backgroundColor('#ccaabb')Text('Text4').fontSize(26).size({width: 180, height: 90}).backgroundColor('#abcabc')}.width('100%')}.width(230).height(200).backgroundColor(Color.Pink)}
}

控制器:
可以通过创建Scroller的实例并将其绑定给Scroll组件来控制滚动。
控制器提供了多种方法来控制滚动,如scrollTo(滚动到指定位置)、scrollEdge(滚动到容器边缘)、scrollPage(滚动到下一页或上一页)等。
滚动事件:
onScroll(API小于12时使用):滚动事件回调,返回滚动时水平、竖直方向偏移量。
onWillScroll(API 12及以上时使用):滚动回调,返回滚动后的偏移量。

栗子:

@Entry
@Component
struct ScrollWithController {scroller: Scroller = new Scroller();@State isActive: boolean = false;build() {Column() {Scroll(this.scroller) {Column() {// 放置多个子组件Text('Text1').fontSize(26).size({width: 180, height: 120}).backgroundColor('#aabbcc')Text('Text2').fontSize(26).size({width: 180, height: 120}).backgroundColor('#bbccaa')Text('Text3').fontSize(26).size({width: 180, height: 120}).backgroundColor('#ccaabb')Text('Text4').fontSize(26).size({width: 180, height: 120}).backgroundColor('#abcabc')Text('Text5').fontSize(26).size({width: 180, height: 120}).backgroundColor('#abcabc')Text('Text6').fontSize(26).size({width: 180, height: 120}).backgroundColor('#abcabc')Text('Text7').fontSize(26).size({width: 180, height: 120}).backgroundColor('#abcabc')Text('Text8').fontSize(26).size({width: 180, height: 120}).backgroundColor('#aabbcc')Text('Text9').fontSize(26).size({width: 180, height: 120}).backgroundColor('#bbccaa')Text('Text10').fontSize(26).size({width: 180, height: 120}).backgroundColor('#ccaabb')}}.scrollBar(BarState.On).scrollBarWidth(5).scrollBarColor(Color.Black).edgeEffect(EdgeEffect.Fade).onWillScroll(() => {const yOffset = this.scroller.currentOffset().yOffset;if (yOffset >= 400) {this.isActive = true;} else {this.isActive = false;}}).width('100%').height('100%');if (this.isActive) {Row({ space: 10 }) {Image($r('app.media.ic_jd_rocket')).height(30).width(30).onClick(() => {this.scroller.scrollEdge(Edge.Top);});}.padding(5).width(40).height(40).borderRadius(20).backgroundColor(Color.White).margin({ bottom: 90, right: 30 });}}}
}

分析:这个示例中,我们创建了一个Scroll组件,并通过控制器来控制滚动。同时,我们还使用了onWillScroll事件来监听滚动偏移量,并根据偏移量来显示或隐藏一个返回顶部的按钮。当用户点击返回顶部按钮时,控制器会将Scroll组件滚动到顶部。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/885500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WordPress 2024主题实例镜像

目录 隐藏 1 WordPress 2024主题实例镜像启用的插件 2 WordPress 2024主题实例镜像截图 WordPress 2024主题实例镜像启用的插件 WordPress 2024主题实例镜像启用了2024主题,配置了: Akismet 反垃圾评论插件 Admin Notices Manager仪表盘通知隐藏…

Java 基于 SpringBoot+Vue 的水果在线销售系统开发(附源码,文档)

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

如何用Python代码计算文件的SHA256?

以下是使用 Python 计算文件的 SHA256 哈希值的例子。代码的功能是利用Python代码计算文件的SHA256,同时将结果打印到屏幕和文件。 import hashlib import sysdef calculate_sha256(file_path):sha256_hash hashlib.sha256()with open(file_path, "rb")…

腾讯云nginx SSL证书配置

本章教程,记录在使用腾讯云域名nginx证书配置SSL配置过程。 一、nginx配置 域名和证书,替换成自己的即可。证书文件可以自定义路径位置。服务器安全组或者防火墙需要开放80和443端口。 server {#SSL 默认访问端口号为 443listen 443 ssl; #请填写绑定证书的域名server_name c…

【双十一特惠】腾讯云省钱攻略:如何智取云计算资源

前言 双十一不仅是购物的狂欢节,对于云计算用户来说,更是一个节省成本的绝佳时机。腾讯云,作为国内领先的云计算服务商,每年双十一都会推出一系列优惠活动。本文将为您揭开如何在这个购物节中,最大化利用腾讯云的优惠…

032集——圆转多段线(Circle to Polyline)(CAD—C#二次开发入门)

CAD中圆可转为带有凸度的多段线以方便后期数据计算、处理&#xff0c;效果如下&#xff1a; 白色为圆&#xff0c;红色为转换后的多段线&#xff08;为区分&#xff0c;已手工偏移多段线&#xff09; public static void XX(){var curves Z.db.SelectEntities<Entity>…

【极客兔兔-Web框架Gee详解】Day2 上下文Context

文章目录 一、框架结构二、设计上下文(Context):day2-context/gee/context.go1. 设计Context必要性1.1 接口粒度过细:1.2 缺乏扩展性:2. 代码3. 优势三、路由(Router): day2-context/gee/router.go四、框架入口:day2-context/gee/gee.go1. 代码五、框架使用: day2-context/m…

HTB:Sightless[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机TCP端口进行开放扫描 继续使用nmap对靶机开放的TCP端口进行脚本、服务扫描 首先尝试对靶机FTP服务进行匿名登录 使用curl访问靶机80端口 使用浏览器可以直接访问该域名 使用浏览器直接访问该子域 Getshell 横向移动 查…

Oracle视频基础1.4.4练习

1.4.4 [dbs] 删干净上次创建的bbk ll rm -f *dbf ll rm -f spfilebbk.ora clear ll创建bbk的pfile&#xff0c;准备对应的目录 ll strings spfilewilson.ora | more strings spfilewilson.ora > initbbk.ora :%s/wilson/bbk :%s/*\.//g :wq ll vi initbbk.ora####### 创…

【.NET 8 实战--孢子记账--从单体到微服务】--简易权限--角色可访问接口管理

咱们继续来编写孢子记账的简易权限&#xff0c;这篇文章中我们将编写角色可访问接口的管理API&#xff0c;同样我不会把完整的代码全都列出来&#xff0c;只会列出部分代码&#xff0c;其余代码我希望大家能自己手动编写&#xff0c;然后对比项目代码。废话不多说&#xff0c;开…

Monetico: 文本到图像合成的革命性变革

在人工智能和创意技术领域&#xff0c;Collov-Labs 推出了具有开创性的文本到图像合成模型 Monetico&#xff0c;它将彻底改变我们创建和可视化数字内容的方式。Monetico 是著名的 Meissonic 模型的有效再现&#xff0c;它提供了一种独特且易于使用的方法&#xff0c;可根据文本…

海康私有化视频平台EasyCVR视频分析设备平台流媒体协议RTMP、HTTP-FLV、HLS的简单对比

在当今的数字化世界中&#xff0c;视频流协议的选择对于确保流畅、高效的视频传输至关重要。随着互联网技术的快速发展&#xff0c;直播和视频点播服务已经成为人们日常生活中不可或缺的一部分。无论是安防监控、在线教育、远程会议还是娱乐直播&#xff0c;用户对于视频流的实…

Java多线程详解⑥(全程干货!!!)死锁 || 构成死锁的条件 || 死锁总结 || Java标准库的线程安全类

这里是Themberfue 在上一节中&#xff0c;我们介绍了线程安全问题&#xff0c;对锁的概念以及使用 在本节中&#xff0c;进入 "死锁" 的概念以及如何产生 "死锁" 死锁 一个线程&#xff0c;一把锁&#xff0c;同时加两把锁 要想进入死锁的介绍和概念&a…

适用于 Windows 11/10 电脑 的 13 个最佳文件恢复软件

如果您由于系统故障、硬件损坏、人为错误或病毒攻击而丢失了重要文件或文件夹。不用担心&#xff0c;因为我们随时为您提供帮助&#xff01;借助正确的文件恢复工具&#xff0c;您可以立即检索计算机上不同类型的文件。如果你有为您的文件创建备份&#xff0c;你不用担心&#…

> 甘晴void:课程资源免费下载

为进一步减少信息差&#xff0c;便利同学&#xff0c;我把部分重要课程的轨迹&#xff08;期中期末考卷、机考题、作业答案、代码、工程项目等&#xff09;上传至Github。网址链接如下&#xff1a; https://github.com/wolfvoid/HNU-resourses Github平台的优势是下载免费&am…

华为OD机试 - 求小球落地5次后所经历的路程和第5次反弹的高度 (Java 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题 点这里。 实战项目访问&#xff1a;http://javapub.net.cn/ 专栏导读 本专栏收录于 《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;E卷D卷A卷B卷C卷&#xff09;》 。 刷的越多&#xff0c;抽中的概率越大&…

uniapp—android原生插件开发(2原生插件开发)

本篇文章从实战角度出发&#xff0c;将UniApp集成新大陆PDA设备RFID的全过程分为四部曲&#xff0c;涵盖环境搭建、插件开发、AAR打包、项目引入和功能调试。通过这份教程&#xff0c;轻松应对安卓原生插件开发与打包需求&#xff01; ***环境问题移步至&#xff1a;uniapp—an…

【机器学习】强化学习(1)——强化学习原理浅析(区分强化学习、监督学习和启发式算法)

文章目录 强化学习介绍强化学习和监督学习比较监督学习强化学习 强化学习的数学和过程表达动作空间序列决策策略&#xff08;policy&#xff09;价值函数&#xff08;value function&#xff09;模型&#xff08;model&#xff09; 强化学习和启发式算法比较强化学习步骤代码走…

常见 HTTP 状态码分类和解释及服务端向前端返回响应时的最完整格式

目前开发的项目很大程度上是为明年的国产化做准备了&#xff0c;所以借这个机会把用了十年的自研系统全部重写&#xff0c;订立更严格的规范&#xff0c;本文记录一下返回格式及对应状态码。 常见 HTTP 状态码及解释 HTTP 状态码用于表示客户端请求的响应状态&#xff0c;它们…

深入理解JVM

文章目录 1. JVM内存区域划分2. JVM中类加载过程类加载&#xff08;1&#xff09;类加载的基本流程&#xff08;2&#xff09;双亲委派模型 《深入理解java虚拟机》 在这本书前&#xff0c;面试官对于JVM也不是很了解。 这本书主要还是写个一下开发 JVM 的人。 1. JVM内存区域…