HarmonyOS自学-Day5(使用List、Stack、RelativeContainer相关组件实现的小案例)

这篇具有很好参考价值的文章主要介绍了HarmonyOS自学-Day5(使用List、Stack、RelativeContainer相关组件实现的小案例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


文章声明⭐⭐⭐

  1. 该文章为我(有编程语言基础,非编程小白)的 HarmonyOS自学笔记,此类文章笔记我会默认大家都学过前端相关的知识,并常常以实现相关小案例的形式记录自己的学习过程
  2. 知识来源为 HarmonyOS官方文档/B站UP主筱筱知晓的HarmonyOS教学视频,归纳为自己的语言与理解记录于此
  3. 不出意外的话,我大抵会 持续更新
  4. 想要了解前端开发(技术栈大致有:Vue2/3、微信小程序、uniapp、HarmonyOS、NodeJS、Typescript)与Python的小伙伴,可以关注我!谢谢大家!

让我们开始今天的学习吧!

小案例

代码如下:

@Entry
@Component
struct Hello {
  // 推荐列表
  @State hotSearchList: string[] = ['女装', '鞋子', '军大衣', '花棉袄', 'Flutter教程', 'HarmonyOS', 'ArkTS', '高跟鞋', '电脑', '华为手机']
  // 控制按钮显示的布尔值
  @State isShow: boolean = false

  build() {
    // 堆叠布局
    Stack({ alignContent: Alignment.BottomEnd }) {
      // 标题与滑动列表
      Column() {
        // 标题
        Text('精品推荐')
          .width('100%')
          .height(60)
          .fontSize(40)
          .textAlign(TextAlign.Center)
        // 滑动列表
        List() {
          ForEach(this.hotSearchList, item => {
            ListItem() {
              Text(`${item}`) {
              }
              .width('100%')
              .height(60)
              .fontSize(25)
              .textAlign(TextAlign.Center)
              .backgroundColor('#eee')
              .margin({ top: 20 })
              .borderRadius(10)
            }
          }, (item, index) => item + `${index}`)
        }
        .layoutWeight(1)
      }
      .width('100%')
      .height('100%')
      // 相对定位容器
      RelativeContainer() {
        // 主按钮
        Button() {
          Text('A')
            .fontSize(26)
            .textAlign(TextAlign.Center)
            .fontColor(Color.White)
        }
        .id('mainButton')
        .width(60)
        .height(60)
        .backgroundColor('#4db8de')
        .alignRules({
          bottom: {
            anchor: '__container__',
            align: VerticalAlign.Bottom
          },
          right: {
            anchor: '__container__',
            align: HorizontalAlign.End
          }
        })
        .onClick(() => {
          // 控制是否显示多个副按钮
          this.isShow = !this.isShow
        })
        // 动态控制显示多个副按钮
        if (this.isShow) {
          Button() {
            Text('B')
              .fontSize(26)
              .textAlign(TextAlign.Center)
              .fontColor(Color.White)
          }
          .id('ButtonB')
          .width(60)
          .height(60)
          .backgroundColor(Color.Orange)
          .alignRules({
            bottom: {
              anchor: 'mainButton',
              align: VerticalAlign.Top
            },
            right: {
              anchor: '__container__',
              align: HorizontalAlign.End
            }
          })
          .offset({
            y: -25
          })

          Button() {
            Text('C')
              .fontSize(26)
              .textAlign(TextAlign.Center)
              .fontColor(Color.White)
          }
          .id('ButtonC')
          .width(60)
          .height(60)
          .backgroundColor(Color.Red)
          .alignRules({
            bottom: {
              anchor: 'mainButton',
              align: VerticalAlign.Top
            },
            right: {
              anchor: 'mainButton',
              align: HorizontalAlign.Start
            }
          })

          Button() {
            Text('D')
              .fontSize(26)
              .textAlign(TextAlign.Center)
              .fontColor(Color.White)
          }
          .id('ButtonD')
          .width(60)
          .height(60)
          .backgroundColor(Color.Green)
          .alignRules({
            bottom: {
              anchor: '__container__',
              align: VerticalAlign.Bottom
            },
            left: {
              anchor: '__container__',
              align: HorizontalAlign.Start
            }
          })
          .offset({
            x: 5
          })
        }
      }
      .width(150)
      .height(150)
    }
    .width('100%')
    .height('100%')
    .padding(15)
  }
}

效果展示:
HarmonyOS自学-Day5(使用List、Stack、RelativeContainer相关组件实现的小案例),关于HarmonyOS,harmonyos,华为文章来源地址https://www.toymoban.com/news/detail-801323.html


到了这里,关于HarmonyOS自学-Day5(使用List、Stack、RelativeContainer相关组件实现的小案例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学成在线----day5

    当前要开发的是媒资管理服务,目前为止共三个微服务:内容管理、系统管理、媒资管理,如下图: 后期还会添加更多的微服务,当前这种由前端直接请求微服务的方式存在弊端: 如果在前端对每个请求地址都配置绝对路径,非常不利于系统维护,比如下边代码中请求系统

    2024年02月08日
    浏览(45)
  • 国庆假期day5

    1.OSI七层模型: 应用层--------提供函 表示层--------表密缩 会话层--------会话 传输层--------进程的接收和发送 网络层--------寻主机 数据链路层----相邻节点的可靠传输 物理层--------二进制比特流 OSI四层(五层)模型: 应用层 传输层 网络层 数据链路层+物理层-----网络接口和物理

    2024年02月07日
    浏览(28)
  • QT day5

    服务器: 客户端: 思维导图:

    2024年02月09日
    浏览(25)
  • 网络编程day5

    思维导图 多路复用 selsect ser cli poll ser cli

    2024年01月22日
    浏览(35)
  • day5 - 利用阈值勾勒

    阈值处理在计算机视觉技术中占有十分重要的位置,他是很多高级算法的底层逻辑之一。本实验将练习使用图像阈值处理技术来处理不同的情况的图像,并获得图像轮廓。 完成本期内容,你可以: 了解图像阈值处理技术的定义和作用 掌握各阈值处理技术的原理 了解自适应阈

    2024年02月06日
    浏览(25)
  • 菜鸟刷题Day5

    ⭐作者:别动我的饭 ⭐专栏:菜鸟刷题 ⭐标语:悟已往之不谏,知来者之可追 描述 给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。 请返回 nums 的动态和。 示例: 解题思路 1.通过观察示例可以发现,其实runningSum[0]和nums[0]相等,runningSu

    2023年04月08日
    浏览(28)
  • C高级day5

    实现一个对数组求和的函数,数组通过实参传递给函数 写一个函数,输出当前用户的uid和gid,并使用变量接收结果 思维导图

    2024年02月09日
    浏览(26)
  • Day5力扣打卡

    链接 思路:由于任意行 i 与 列 j,满足对角线上 i == j + t 的关系,t 的范围为 [1 - n, m - 1],设 s = t + n,可以得到 s的范围为 [1, n + m - 1],对应 m x n 矩阵上所有的 n + m - 1 条对角线,以及 i - s + n == j 的关系,根据 i 的范围 [0, m - 1] 可以推出对角线在 [1, n + m - 1] 范围下的 j 的取

    2024年02月07日
    浏览(31)
  • 蓝桥杯训练day5

    p是模式串,s是主串 第一步:算出p的最长前后缀,用两个p来求 第二部:算出p在s中的位置,用p和s来求 单调栈模板题 思路: 整理了一下: 求左边第一个小的数,等价于求右边第一个小的数(将答案倒过来即可),从左往右使用单调递增的栈 求左边第一个大的数,等价于求

    2023年04月08日
    浏览(28)
  • 【C刷题】day5

    一、选择题 1、如下程序的功能是( ) A: 测字符数组ch的长度 B: 将数字字符串ch转换成十进制数 C: 将字符数组ch中的小写字母转换成大写 D: 将字符数组ch中的大写字母转换成小写 【答案】: D 【解析】: 考点:大小写转换(ASCII值) 一个字母对应的小写比大写的ASCII码值大

    2024年02月08日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包