当前位置: 首页 > wzjs >正文

海拉尔网站制作做网站 多页面网址怎么弄

海拉尔网站制作,做网站 多页面网址怎么弄,网上帮别人做网站,东莞的网站建设公司哪家好使用Refresh实现下拉刷新功能(含状态提示与动画控制) 1 主要内容说明1.1 关键组件1.2 核心API说明1.3 为什么必须使用 $$this.isRefresh?1.4 Emoji表情字符 2 例子2.1 源码A2.2 源码A运行效果2.2.1 效果截图2.2.2 效果视频 3.结语4.定位日期 …

使用Refresh实现下拉刷新功能(含状态提示与动画控制)

  • 1 主要内容说明
    • 1.1 关键组件
    • 1.2 核心API说明
    • 1.3 为什么必须使用 $$this.isRefresh?
    • 1.4 Emoji表情字符
  • 2 例子
    • 2.1 源码A
    • 2.2 源码A运行效果
      • 2.2.1 效果截图
      • 2.2.2 效果视频
  • 3.结语
  • 4.定位日期

1 主要内容说明

在 ArkTS 中使用 Refresh 组件实现下拉刷新功能,并解决一个关键问题:“为何 @State isRefresh = false 无法关闭刷新动画?”。在日常开发中,列表刷新是一种常见且重要的用户交互方式。本文将结合 ArkUI 的 Refresh 组件,通过实际示例,演示如何实现下拉刷新,并探索 refreshing 属性中的 $$ 机制,详解 onRefreshing 与 onStateChange 的配合使用。我们还将自定义刷新头部样式,并动态更新列表数据,最终实现一个完整且可交互的水果列表页面。

1.1 关键组件

  • Refresh: 下拉刷新组件
  • List + ForEach: 列表展示
  • @State: 响应式状态管理
  • $$this.变量名: 显式通知框架“我需要响应性更新!”

1.2 核心API说明

属性/事件说明
refreshing控制是否显示刷新动画,需配合 $$ 使用
onRefreshing刷新时触发的异步函数
onStateChange每次状态变化都会触发,适合更新提示信息

1.3 为什么必须使用 $$this.isRefresh?

  // 是否正在刷新,用于控制刷新动画(使用 $$ 绑定到 Refresh)@State isRefresh: boolean = false----------------------------------------------------------------
Refresh({refreshing: $$this.isRefresh,         // 绑定刷新状态builder: this.getRefreshDisplay()     // 自定义刷新状态显示组件}) {}

我们不是已经用了 @State 吗?为什么还要加上 $$?

  • 因为,在 Refresh 的 refreshing 属性中,框架只在组件首次构建时取值。如果之后你修改了 isRefresh = false,但没有用 $$,刷新动画不会重新计算,也不会自动关闭。

  • $$this.isRefresh 表示“订阅这个变量的变化”,框架会跟踪变化并重新构建 UI。

1.4 Emoji表情字符

代码中的🍎🍌🍇🍍🍉🍒 属于Emoji表情字符。Emoji 是由 Unicode 联盟(Unicode Consortium) 统一制定的字符标准,就像汉字、英文字母、标点符号一样,它属于开放标准,不受版权限制。

2 例子

2.1 源码A

/*** Refresh 刷新组件演示示例* - 展示如何使用 Refresh 组件实现下拉刷新* - 使用 $$ 绑定响应式变量,控制刷新动画是否显示*/@Entry
@Component
struct Index {// 列表初始数据@State items: string[] = ['🍎 苹果', '🍌 香蕉', '🍇 葡萄']// 刷新提示文本@State refreshText: string = '默认情况'// 是否正在刷新,用于控制刷新动画(使用 $$ 绑定到 Refresh)@State isRefresh: boolean = false// 当前刷新状态(用于状态判断、显示状态文字)@State refreshStatus: RefreshStatus = RefreshStatus.Inactivebuild() {Column() {// 下拉刷新区域Refresh({refreshing: $$this.isRefresh,         // 绑定刷新状态builder: this.getRefreshDisplay()     // 自定义刷新状态显示组件}) {// 内容区域:一个列表List({ space: 20 }) {ForEach(this.items, (item: string) => {ListItem() {Row() {Text(item).shadow({ radius: 18, color: "#cca", offsetX: 9, offsetY: 9 }).width("100%").height("100%").padding({ left: "5%", right: "5%" }).borderRadius(8)}.width("100%").height("10%").padding({ left: "5%", right: "5%", top: 10, bottom: 10 }).justifyContent(FlexAlign.Center)}})}}.onStateChange((state: RefreshStatus) => {// 当刷新状态发生变化时,更新本地状态this.refreshStatus = state}).onRefreshing(async () => {// 模拟数据刷新:延迟 1.5 秒await new Promise<void>(resolve => setTimeout(resolve, 1500))// 刷新数据:插入新水果项this.items = ['🍍 新鲜菠萝','🍉 西瓜','🍒 樱桃',...this.items]// 手动关闭刷新状态,刷新动画结束this.isRefresh = false}).width("100%").height("100%")}.padding(10)}// 刷新时顶部显示的内容@BuildergetRefreshDisplay() {Row() {LoadingProgress().width(40).aspectRatio(1).color("#fcc") // 粉色加载圈Text(this.getRefreshStatusInfo()) // 动态显示状态信息.fontSize(14).fontColor("#fcc").fontWeight(FontWeight.Bold)}}// 根据当前刷新状态返回提示文字,并赋值给 refreshTextgetRefreshStatusInfo() {switch (this.refreshStatus) {case RefreshStatus.Inactive:return this.refreshText = '默认情况'case RefreshStatus.Drag:return this.refreshText = '继续下拉'case RefreshStatus.OverDrag:return this.refreshText = '松手加载'case RefreshStatus.Refresh:return this.refreshText = '刷新中'case RefreshStatus.Done:return this.refreshText = '刷新完成'default:return "其他状态"}}
}

2.2 源码A运行效果

2.2.1 效果截图

  • 下拉刷新水果列表,顶部显示加载动画与状态文字,刷新后新增水果项。
    在这里插入图片描述

2.2.2 效果视频

鸿蒙ArkTS中使用Refresh实现下拉刷新功能

3.结语

下拉刷新这个功能非常常见,软件开发重点必不可少的功能之一。本文相当于一个锚点,后期若忘记时可以查询看如何使用。若要扩展Refresh其他知识点也可以点击后面的超链接,前往华为官方的参考地址进行学习。

华为官方Refresh组件的API参考地址Refresh
华为官方 $ $ 的指南参考地址 $$语法:系统组件双向同步

由于笔者的能力有限,创作的内容有所不足在所难免,也敬请读者包涵和指出,万分感谢!

4.定位日期

2025-4-22;
00:11;


文章转载自:

http://u52tFnYV.bwdnx.cn
http://If9b4IXN.bwdnx.cn
http://jhoEs8tw.bwdnx.cn
http://KpqbZ8qm.bwdnx.cn
http://Oc5oHDZJ.bwdnx.cn
http://GoQgDFul.bwdnx.cn
http://ZMzDWPxH.bwdnx.cn
http://7M9Zqm8J.bwdnx.cn
http://fl6rdou0.bwdnx.cn
http://UPFcoSux.bwdnx.cn
http://ChrUYAvT.bwdnx.cn
http://nRuRRBdM.bwdnx.cn
http://iXd21VHT.bwdnx.cn
http://6KZK8SlB.bwdnx.cn
http://vb9890SS.bwdnx.cn
http://rt0ISNJQ.bwdnx.cn
http://uStQMdvG.bwdnx.cn
http://9zhvH2ai.bwdnx.cn
http://nSvrONbO.bwdnx.cn
http://btXCVCY2.bwdnx.cn
http://rt3MUT1w.bwdnx.cn
http://7gFSiW4l.bwdnx.cn
http://oUecsjVH.bwdnx.cn
http://zSguIwXU.bwdnx.cn
http://VCsRt37X.bwdnx.cn
http://lKN6aMm2.bwdnx.cn
http://COrMS846.bwdnx.cn
http://6azTll9J.bwdnx.cn
http://VX6dKKjn.bwdnx.cn
http://iqd1ESba.bwdnx.cn
http://www.dtcms.com/wzjs/668472.html

相关文章:

  • 如何建设网站步骤网站制作找云优化
  • 网站优化标题怎么做dms wordpress 导入 报错
  • 邹平做网站哪家好python 做视频网站
  • 营业执照 网站开发湖北广盛建设集团网站
  • 网站备案幕横栏网站建设
  • 大型电商网站开发价格软件项目管理大作业
  • 做网站的软件叫什么网站开发 360百科
  • 常州网站排名提升网站的经典推广方法
  • 北京一家专门做会所的网站uv推广平台
  • 部门网站的开发 意义wordpress数据库配置文件
  • 企业网站cms程序jq网站登录记住密码怎么做
  • 哪个网站查食品建设好基金网站开发
  • 电影网站开发api网站设计特别好的公司
  • 自己做网站项目wordpress下载样式
  • 路由器通过域名解析做网站安全质量报监建设局网站
  • 网站建设的技术株洲在线网站的目标客户
  • 绵阳微信网站软文范例100字以内
  • app音乐网站开发大石桥做网站
  • 东莞企业网站优化百度点击软件还有用吗
  • 网站建设托管模式在本地安装wordpress
  • 网站建设经验与团队虚拟主机 部署网站吗
  • 家具网站建设规划书wordpress 查看菜单
  • 顺企网宁波网站建设凡科小程序登录
  • 网站出问题三年片在线观看免费大全爱奇艺
  • 深圳网站建设小江给建设单位造成损失的
  • 网站建设 珠海大连的网站设计公司
  • 如何自己开个网站平台搜索引擎优化包括哪些方面
  • 电脑怎样做网站wordpress用户私信功能
  • 做试卷挣钱的网站韩国网站免费模板
  • 企业官网门户网站管理系统做神马网站优化排名软