当前位置:首页 > 移动端开发 > 正文内容

手把手教你华为鸿蒙开发之第九节

邻居的猫1个月前 (12-09)移动端开发687

华为鸿蒙开发:翻滚视图Scroller与ForEach循环深度解析

在这里刺进图片描绘

导言

在移动运用开发中,翻滚视图是展现很多内容的常用组件。华为鸿蒙操作系统供给了Scroller组件,答应开发者创立翻滚视图。本文将经过 DevEco Studio 具体介绍Scroller的根本运用、翻滚操控以及怎么结合ForEach循环动态生成翻滚内容。

Scroller根底

Scroller是鸿蒙运用中用于创立翻滚视图的组件,它支撑笔直和水平翻滚,以及自定义翻滚条等特性。

根本运用

示例1:根底Scroller翻滚视图

@Entry
@Component
struct Index {
  build() {
    Column() {
      Scroll() {
        Column({ space: 10 }) {
          ForEach(Array.from({ length: 5 }), (item: string, index) => {
            Text('项目' + (index + 1))
              .width('100%')
              .height(100)
              .textAlign(TextAlign.Center)
              .backgroundColor(Color.Red)
              .fontSize(20)
              .fontColor(Color.White)
              .borderRadius(10)
          })
        }
      }
      .padding(10)
      .width('100%')
      .height(300)
    }
  }
}

在这个示例中,咱们创立了一个包括5个项目的翻滚视图,每个项目都是一个简略的文本视图,布景色彩为赤色。

翻滚操控

示例2:增加翻滚条和翻滚操控

@Entry
@Component
struct Index {
  build() {
    Column() {
      Scroll() {
        Column({ space: 10 }) {
          ForEach(Array.from({ length: 10 }), (item: string, index) => {
            Text('项目' + (index + 1))
              .width('100%')
              .height(100)
              .textAlign(TextAlign.Center)
              .backgroundColor(Color.Blue)
              .fontSize(20)
              .fontColor(Color.White)
              .borderRadius(10)
          })
        }
        .padding(10)
        .width('100%')
      }
      .width('100%')
      .height(400)
      .scrollable(ScrollDirection.Vertical) // 设置翻滚方向
      .scrollBar(BarState.Auto) // 设置翻滚条显现战略
      .scrollBarColor(Color.Green) // 设置翻滚条色彩
      .scrollBarWidth(5) // 设置翻滚条宽度
      .edgeEffect(EdgeEffect.Spring) // 设置滑动作用
    }
  }
}

在这个示例中,咱们为Scroll组件增加了翻滚条,并设置了翻滚条的色彩、宽度和滑动作用。

翻滚事情

示例3:监听翻滚事情

@Entry
@Component
struct Index {
  myScroll: Scroller = new Scroller()

  build() {
    Column() {
      Scroll(this.myScroll) {
        Column({ space: 10 }) {
          ForEach(Array.from({ length: 10 }), (item: string, index) => {
            Text('项目' + (index + 1))
              .width('100%')
              .height(100)
              .textAlign(TextAlign.Center)
              .backgroundColor(Color.Green)
              .fontSize(20)
              .fontColor(Color.White)
              .borderRadius(10)
          })
        }
        .padding(10)
        .width('100%')
      }
      .width('100%')
      .height(400)
      .scrollable(ScrollDirection.Vertical)
      .scrollBar(BarState.Auto)
      .scrollBarColor(Color.Blue)
      .scrollBarWidth(5)
      .edgeEffect(EdgeEffect.Spring)
      .onScroll((x, y) => {
        console.log('现已滑动的间隔:', this.myScroll.currentOffset().yOffset)
      })
    }
  }
}

在这个示例中,咱们监听了翻滚事情,并在操控台输出当时翻滚的间隔。

翻滚操控按钮

示例4:操控翻滚条方位

@Entry
@Component
struct Index {
  myScroll: Scroller = new Scroller()

  build() {
    Column() {
      Scroll(this.myScroll) {
        Column({ space: 10 }) {
          ForEach(Array.from({ length: 10 }), (item: string, index) => {
            Text('项目' + (index + 1))
              .width('100%')
              .height(100)
              .textAlign(TextAlign.Center)
              .backgroundColor(Color.Purple)
              .fontSize(20)
              .fontColor(Color.White)
              .borderRadius(10)
          })
        }
        .padding(10)
        .width('100%')
      }
      .width('100%')
      .height(400)
      .scrollable(ScrollDirection.Vertical)
      .scrollBar(BarState.Auto)
      .scrollBarColor(Color.Blue)
      .scrollBarWidth(5)
      .edgeEffect(EdgeEffect.Spring)

      Button('翻滚到底部').margin(20)
        .onClick(() => {
          this.myScroll.scrollEdge(Edge.End)
        })
      Button('获取现已翻滚的间隔')
        .onClick(() => {
          const y = this.myScroll.currentOffset().yOffset
          AlertDialog.show({
            message: `y: ${y}`
          })
        })
    }
  }
}

在这个示例中,咱们增加了两个按钮,一个用于翻滚到底部,另一个用于显现当时翻滚的间隔。

结语

经过本文的具体介绍和示例,你应该可以把握Scroller组件的根本运用、翻滚操控以及怎么结合ForEach循环动态生成翻滚内容。这些技术关于开发具有丰厚翻滚内容的鸿蒙运用至关重要。假如你有任何问题或想要进一步谈论,欢迎在谈论区留下你的主意。


以上便是一篇关于华为鸿蒙开发中Scroller组件的具体教程。期望这篇文章能协助你更好地了解和运用华为鸿蒙开发中的Scroller组件。假如你在运用 DevEco Studio 进行开发时遇到任何问题,欢迎沟通谈论。

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=458

标签: HarmonyOS Next
分享给朋友:

“手把手教你华为鸿蒙开发之第九节” 的相关文章

[uniapp] 扫码功用

[uniapp] 扫码功用

APP、微信小程序 (原生扫码功用) <!-- 在 'manifest.json' 中答应翻开摄像头权限 --> <template> <button @click="scanQRcodes">扫码</button> </template&g...

App杂乱动画完成——Rive保姆级教程

App杂乱动画完成——Rive保姆级教程

作者:京东物流 沈亮堂 在App开发进程中,假如想完成动画作用,能够大略分为两种办法。一种是直接用代码编写,像平移、旋转等简略的动画作用,都能够这么干,假如略微杂乱点,就会对开发工程师的数学功底、图形图像学功底有很高的要求。 另一种办法,能够让UI同学合作,一次性出多张图片或许直接出一张GIF图,...

windows开发ios,windows官网下载win10

Windows开发iOS应用通常涉及到使用苹果的官方开发工具和框架,如Xcode和Swift语言。虽然Xcode主要在Mac上运行,但也有一些方法可以在Windows上开发iOS应用。1. 使用虚拟机或远程桌面:你可以在Windows上安装Mac虚拟机,然后在虚拟机中运行Xcode。另一种方法是使用...

鸿蒙系统测评,性能、体验与生态构建

鸿蒙系统测评,性能、体验与生态构建

鸿蒙系统(HarmonyOS)是华为开发的操作系统,旨在为用户提供个性化、高效和智能化的使用体验。以下是关于鸿蒙系统测评的详细信息: 1. 个性化与高效交互体验HarmonyOS 4在个性化方面进行了显著升级,引入了自拟形象功能、个性主题、全景天气壁纸和心情主题等。用户可以通过上传图片来自定义主题,...

穿越鸿蒙,华为鸿蒙系统的未来展望

穿越鸿蒙,华为鸿蒙系统的未来展望

“穿越鸿蒙”是一个富有想象力和哲学意味的表达,它通常指的是超越时空、物质和现实的界限,进入一个更为深邃、原始或超然的境界。在文学、艺术和哲学中,这样的表达经常被用来描述人类对未知、无限或宇宙本质的探索和追求。在文学作品中,“穿越鸿蒙”可能象征着主人公或诗人对现实世界的超越,进入一个全新的、神秘的精神...

鸿蒙海外版,华为全新微内核操作系统惊艳全球

鸿蒙海外版,华为全新微内核操作系统惊艳全球

华为鸿蒙操作系统(HarmonyOS)在国内市场已经得到了广泛的应用和推广,但在海外市场的情况有所不同。以下是关于鸿蒙海外版的详细信息:1. 海外市场现状: 在海外市场,华为设备(包括手机和平板)目前主要使用的是EMUI系统,而不是直接使用鸿蒙系统。这是因为EMUI系统可以兼容谷歌服务框架(G...