【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局)

这篇具有很好参考价值的文章主要介绍了【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

Counter容器组件:计数器组件,提供相应的增加或者减少的计数操作。
Flex容器组件:以弹性方式布局子组件的容器组件。文章来源地址https://www.toymoban.com/news/detail-742503.html


一、Counter

计数器组件,提供相应的增加或者减少的计数操作。

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

1.1 子组件

可以包含子组件。

1.2 接口

我们使用下面这个函数接口即可创建一个计数器容器

Counter()

【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局),鸿蒙软件开发,java,开发语言,android,鸿蒙软件开发,1024程序员节,华为,鸿蒙系统

他的样子如下图,没有我们熟悉的中间的数字,所以为什么说他是一个容器组件,就是因为他需要包含Text组件去显示具体的东西,提供可用性
【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局),鸿蒙软件开发,java,开发语言,android,鸿蒙软件开发,1024程序员节,华为,鸿蒙系统

从API version 9开始,该接口支持在ArkTS卡片中使用。

1.3 属性

支持通用属性。

1.4 事件

不支持通用事件和手势, 仅支持如下事件:

onInc(event: () => void)

【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局),鸿蒙软件开发,java,开发语言,android,鸿蒙软件开发,1024程序员节,华为,鸿蒙系统

2.名称: onInc
3.功能描述: 用于监听数值增加事件。当数值增加时,将触发指定的事件处理函数。
4.支持版本: 从API版本9开始,可在ArkTS卡片中使用。

onDec(event: () => void)

【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局),鸿蒙软件开发,java,开发语言,android,鸿蒙软件开发,1024程序员节,华为,鸿蒙系统

6.名称: onDec
7.功能描述: 用于监听数值减少事件。当数值减少时,将触发指定的事件处理函数。
8.支持版本: 从API版本9开始,可在ArkTS卡片中使用。

这些方法允许你在数值增加或减少时注册特定的事件处理函数,以便在发生相应事件时执行自定义操作。这对于与数值变化相关的用户界面交互非常有用。

1.5 示例代码

// xxx.ets
@Entry
@Component
struct CounterExample {
  @State value: number = 0

  build() {
    Column() {
      Counter() {
        Text(this.value.toString())
      }.margin(100)
      .onInc(() => {
        this.value++
      })
      .onDec(() => {
        this.value--
      })
    }.width("100%")
  }
}

【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局),鸿蒙软件开发,java,开发语言,android,鸿蒙软件开发,1024程序员节,华为,鸿蒙系统

我们添加的子组件就是上面我们的空白位置是添加的,这里我们是要++/–,然后显示,所以需要一个Text组件

二、Flex

以弹性方式布局子组件的容器组件。

说明
该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
Flex组件在渲染时存在二次布局过程,因此在对性能有严格要求的场景下建议使用Column、Row代替。
Flex组件主轴默认不设置时撑满父容器,Column、Row组件主轴不设置时默认是跟随子节点大小。

弹性布局到底是什么意思?

弹性布局是一种页面排列方式,就像把页面上的元素放在弹性的盒子里一样。这些元素可以根据屏幕大小和容器宽度来自动伸缩和重新排列,以适应不同的屏幕或窗口尺寸。
举个例子:想象你有一个网页上的按钮和文本框,它们通常排列在一行上。但如果用户在小屏幕手机上打开这个页面,你可能希望它们自动堆叠在一列,以适应有限的水平空间。这就是弹性布局的好处,它允许页面上的元素根据需要重新排列,以确保在不同设备上都能正常显示和使用,而不会显得拥挤或不可读。这种布局方式使得网页更具响应性,更适应各种屏幕大小,提供更好的用户体验。

2.1 权限列表

2.2 子组件

可以包含子组件。
你想,我们这个是布局,没子组件怎么行呢,所以肯定有子组件的,其他的容器各位也可以进行类比!

2.3 接口

Flex(value?: { direction?: FlexDirection, wrap?: FlexWrap, justifyContent?: FlexAlign, alignItems?: ItemAlign, alignContent?: FlexAlign })

【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局),鸿蒙软件开发,java,开发语言,android,鸿蒙软件开发,1024程序员节,华为,鸿蒙系统

从API version 9开始,该接口支持在ArkTS卡片中使用。

参数

direction
参数名: direction
参数类型: FlexDirection
必填: 否
默认值: FlexDirection.Row
参数描述: 用于指定子组件在 Flex 容器上排列的方向,也就是主轴的方向。

wrap
参数名: wrap
参数类型: FlexWrap
必填: 否
默认值: FlexWrap.NoWrap
参数描述: 用于确定 Flex 容器是单行/列排列还是多行/列排列。在多行布局时,它还会通过交叉轴方向确定新行的堆叠方向。

justifyContent
参数名: justifyContent
参数类型: FlexAlign
必填: 否
默认值: FlexAlign.Start
参数描述: 用于定义所有子组件在 Flex 容器主轴上的对齐方式。

alignItems
参数名: alignItems
参数类型: ItemAlign
必填: 否
默认值: ItemAlign.Start
参数描述: 用于定义所有子组件在 Flex 容器交叉轴上的对齐方式。

alignContent
参数名: alignContent
参数类型: FlexAlign
必填: 否
默认值: FlexAlign.Start
参数描述: 用于定义在交叉轴中存在额外空间时,多行内容的对齐方式。此参数仅在 wrap 设置为 Wrap 或 WrapReverse 时生效。
这些参数用于控制 Flex 布局的各个方面,例如子组件的排列方向、对齐方式以及容器的包裹方式等,以便更好地控制界面布局。

2.4 示例代码

示例代码1

// xxx.ets
@Entry
@Component
struct FlexExample1 {
  build() {
    Column() {
      Column({ space: 5 }) {
        Text('direction:Row').fontSize(9).fontColor(0xCCCCCC).width('90%')
        Flex({ direction: FlexDirection.Row }) { // 子组件在容器主轴上行布局
          Text('1').width('20%').height(50).backgroundColor(0xF5DEB3)
          Text('2').width('20%').height(50).backgroundColor(0xD2B48C)
          Text('3').width('20%').height(50).backgroundColor(0xF5DEB3)
          Text('4').width('20%').height(50).backgroundColor(0xD2B48C)
        }
        .height(70)
        .width('90%')
        .padding(10)
        .backgroundColor(0xAFEEEE)

        Text('direction:RowReverse').fontSize(9).fontColor(0xCCCCCC).width('90%')
        Flex({ direction: FlexDirection.RowReverse }) { // 子组件在容器主轴上反向行布局
          Text('1').width('20%').height(50).backgroundColor(0xF5DEB3)
          Text('2').width('20%').height(50).backgroundColor(0xD2B48C)
          Text('3').width('20%').height(50).backgroundColor(0xF5DEB3)
          Text('4').width('20%').height(50).backgroundColor(0xD2B48C)
        }
        .height(70)
        .width('90%')
        .padding(10)
        .backgroundColor(0xAFEEEE)

        Text('direction:Column').fontSize(9).fontColor(0xCCCCCC).width('90%')
        Flex({ direction: FlexDirection.Column }) { // 子组件在容器主轴上列布局
          Text('1').width('100%').height(40).backgroundColor(0xF5DEB3)
          Text('2').width('100%').height(40).backgroundColor(0xD2B48C)
          Text('3').width('100%').height(40).backgroundColor(0xF5DEB3)
          Text('4').width('100%').height(40).backgroundColor(0xD2B48C)
        }
        .height(160)
        .width('90%')
        .padding(10)
        .backgroundColor(0xAFEEEE)

        Text('direction:ColumnReverse').fontSize(9).fontColor(0xCCCCCC).width('90%')
        Flex({ direction: FlexDirection.ColumnReverse }) { // 子组件在容器主轴上反向列布局
          Text('1').width('100%').height(40).backgroundColor(0xF5DEB3)
          Text('2').width('100%').height(40).backgroundColor(0xD2B48C)
          Text('3').width('100%').height(40).backgroundColor(0xF5DEB3)
          Text('4').width('100%').height(40).backgroundColor(0xD2B48C)
        }
        .height(160)
        .width('90%')
        .padding(10)
        .backgroundColor(0xAFEEEE)
      }.width('100%').margin({ top: 5 })
    }.width('100%')
  }
}

【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局),鸿蒙软件开发,java,开发语言,android,鸿蒙软件开发,1024程序员节,华为,鸿蒙系统

示例代码2

// xxx.ets
@Entry
@Component
struct FlexExample2 {
  build() {
    Column() {
      Column({ space: 5 }) {
        Text('Wrap').fontSize(9).fontColor(0xCCCCCC).width('90%')
        Flex({ wrap: FlexWrap.Wrap }) { // 子组件多行布局
          Text('1').width('50%').height(50).backgroundColor(0xF5DEB3)
          Text('2').width('50%').height(50).backgroundColor(0xD2B48C)
          Text('3').width('50%').height(50).backgroundColor(0xD2B48C)
        }
        .width('90%')
        .padding(10)
        .backgroundColor(0xAFEEEE)

        Text('NoWrap').fontSize(9).fontColor(0xCCCCCC).width('90%')
        Flex({ wrap: FlexWrap.NoWrap }) { // 子组件单行布局
          Text('1').width('50%').height(50).backgroundColor(0xF5DEB3)
          Text('2').width('50%').height(50).backgroundColor(0xD2B48C)
          Text('3').width('50%').height(50).backgroundColor(0xF5DEB3)
        }
        .width('90%')
        .padding(10)
        .backgroundColor(0xAFEEEE)

        Text('WrapReverse').fontSize(9).fontColor(0xCCCCCC).width('90%')
        Flex({ wrap: FlexWrap.WrapReverse , direction:FlexDirection.Row }) { // 子组件反向多行布局
          Text('1').width('50%').height(50).backgroundColor(0xF5DEB3)
          Text('2').width('50%').height(50).backgroundColor(0xD2B48C)
          Text('3').width('50%').height(50).backgroundColor(0xD2B48C)
        }
        .width('90%')
        .height(120)
        .padding(10)
        .backgroundColor(0xAFEEEE)
      }.width('100%').margin({ top: 5 })
    }.width('100%')
  }
}

【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局),鸿蒙软件开发,java,开发语言,android,鸿蒙软件开发,1024程序员节,华为,鸿蒙系统


总结

下面这些容器组件对于我们ArkUI界面的开发非常重要,希望大家好好学。

Counter容器组件:计数器组件,提供相应的增加或者减少的计数操作。
Flex容器组件:以弹性方式布局子组件的容器组件。

到了这里,关于【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【鸿蒙软件开发】ArkTS基础组件之TextTimer(文本显示计时)、TimePicker(时间选择)

    通过文本显示计时信息并控制其计时器状态的组件。 时间选择组件,根据指定参数创建选择器,支持选择小时及分钟。 通过文本显示计时信息并控制其计时器状态的组件。 说明 该组件从API Version 8开始支持。后续版本如有新增内容,则会更新新版博客。 无 使用下面这个接口

    2024年02月07日
    浏览(58)
  • 【软件开发/设计】分布式架构中的组件(如Kafka、MongoDB和Nginx)如何进行容器化部署

    容器化部署是将应用程序及其依赖打包成一个容器镜像,然后在任何支持容器的环境中运行这个镜像的过程。在分布式架构中,像Nginx、MongoDB、Kafka这样的组件通过容器化可以更易于部署、扩展和管理。以下是这些组件容器化部署的一般步骤和原理: 容器化部署的一般步骤

    2024年02月04日
    浏览(48)
  • 鸿蒙开发实战-(ArkUI)List组件和Grid组件的使用

    在我们常用的手机应用中,经常会见到一些数据列表,如设置页面、通讯录、商品列表等。下图中两个页面都包含列表,“首页”页面中包含两个网格布局,“商城”页面中包含一个商品列表。 上图中的列表中都包含一系列相同宽度的列表项,连续、多行呈现同类数据,例如

    2024年01月22日
    浏览(51)
  • 鸿蒙软件开发0基础入门

    今天,万众瞩目的纯血版鸿蒙星河HarmonyOS NEXT发布了,鸿蒙操作系统(HarmonyOS)作为华为开发的面向全场景分布式智能终端的操作系统,对于初学者入门开发,以下是一些基本步骤和要点: 1. 开发环境准备 安装DevEco Studio :首先需要下载并安装华为提供的集成开发环境(IDE)

    2024年01月21日
    浏览(60)
  • 鸿蒙ArkUI实例:【自定义组件】

     组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如  Text  、  Button  等,也可以是自定义组件,本节笔者简单介绍一下自定义组件的语法规范。 自定义一个组件,首先要定义

    2024年04月14日
    浏览(38)
  • 润和软件鸿蒙全场景开发与教学创新解决方案赋能高校ICT人才培养

    2022年11月4日-6日,一年一度的华为开发者大会2022(HDC)在东莞松山湖举办。本次大会汇聚智能家居、智慧办公、影音娱乐、智慧出行、运动健康五大场景下的创新体验,基于新的HarmonyOS开发技术给开发者构筑更加高效便捷的开发平台,并呈现了丰富的开发者活动。 2022年11月

    2024年02月09日
    浏览(48)
  • 鸿蒙开发学习——容器组件介绍

    在完成自己的应用过程中,发现自己需要调整登录界面的布局,但是并不是很清楚如何调整,所以需要了解一下登录界面是如何调整元素的。通过学习发现,登录界面的容器组建,就像html中的盒子,整个网页就是由若干个盒子构成。 在这里结合自己修改的登录界面好好学习

    2024年01月24日
    浏览(36)
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Blank组件

    鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Blank组件 一、操作环境 操作系统:  Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1+ 二、Blank组件 空白填充组件,在容器主轴方向上,空白填充组件具有自动填充容器空余部分的能力。仅当父组件为Row/Column/Flex时生效。 子组件 无 接口

    2024年02月19日
    浏览(52)
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavRouter组件

    鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavRouter组件 一、操作环境 操作系统:  Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1+ 二、NavRouter组件 导航组件,默认提供点击响应处理,不需要开发者自定义点击事件逻辑。 子组件 必须包含两个子组件,其中第二个子组件必须为

    2024年02月21日
    浏览(41)
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavDestination组件

     鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavDestination组件 一、操作环境 操作系统:  Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1+ 二、NavDestination组件 作为NavRouter组件的子组件,用于显示导航内容区。 子组件 可以包含子组件。 接口 NavDestination() 属性 仅支持backgroundColo

    2024年02月20日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包