首页 > 其他分享 >arkUI:Column和Rom的间距设置(列向,横向)

arkUI:Column和Rom的间距设置(列向,横向)

时间:2024-11-06 19:44:02浏览次数:3  
标签:间距 Rom Column height width 列向 组件 Row

arkUI:Column和Rom的间距设置(列向,横向)

1 主要内容说明

Column:垂直布局组件,子组件从上到下依次排列。适合需要纵向展示内容的场景。通过 space 属性可以控制子组件之间的垂直间距,width 和 height 属性可以按百分比调整子组件大小。
Row:水平布局组件,子组件从左到右依次排列。适合横向排列的内容展示,space 属性可调整子组件间的水平间距,layoutWeight 用于平分或调整组件占用的空间比例。

2 相关内容举例和说明

2.1 Column的间距(列的间距)

Column 是一个垂直布局组件,可将子组件从上到下依次排列。通过 Column,可以轻松创建层次分明的布局,适合多层级内容的展示。以下源码1中创建了两个 Column。第一个 Column 是“对照组”,用于展示基本的垂直布局。第二个 Column 是“实验组”,设置了 space 属性,增加了子组件之间的间距。space 属性用于设置 Column 中子组件的间距,单位为 vp(虚拟像素)。在实验组中,space: 20 为组件之间添加了 20vp 的垂直间距,使得组件之间的空白更明显,有助于提升界面的层次感。在 Column 中的 Text 组件使用了 width 和 height 属性,分别设置为父组件宽度和高度的百分比,例如 width(“90%”) 和 height(“10%”),确保每个组件在垂直方向的大小一致。backgroundColor 属性为每个组件添加了背景颜色,便于区分组件。主 Column 设置了 height(“100%”) 和 width(“100%”),使其占据父容器的全部空间。同时,设置 backgroundColor 属性可以为整个页面添加背景颜色,让整体设计更加协调。

2.1.1 源码1 (Column的间距)

@Entry
@Component
struct PageSpace {

  build() {
    Column() {
      // 第一个Column组件,包含三个文本组件,对照组
      Column() {
        Text("组件1,对照组")
          .backgroundColor("#bbf")
          .width("90%")
          .height("10%")

        Text("组件2,对照组")
          .backgroundColor("#fff")
          .width("90%")
          .height("10%")

        Text("组件3,对照组")
          .backgroundColor("#ff72ff93")
          .width("90%")
          .height("10%")
      }

      // 空白占位符
      Blank()

      // 第二个Column组件,包含三个文本组件,实验组,设置Column间距为20vp
      Column({ space: 20 }) {
        Text("组件1,实验组,Column间距20vp")
          .backgroundColor("#bbf")
          .width("90%")
          .height("10%")

        Text("组件2,实验组,Column间距20vp")
          .backgroundColor("#fff")
          .width("90%")
          .height("10%")

        Text("组件3,实验组,Column间距20vp")
          .backgroundColor("#ff72ff93")
          .width("90%")
          .height("10%")
      }

      // 空白占位符
      Blank()

    }
    .height("100%") // 设置主Column的高度为100%
    .width("100%")  // 设置主Column的宽度为100%
    .backgroundColor("#ffa") // 设置背景颜色
  }
}

2.1.2 源码1运行效果

在这里插入图片描述

2.2 Row的间距(横向间距)

结构与布局:使用嵌套的 Row 组件构建横向排列的文本组件。其中第一个 Row 是对照组,第二个 Row 是实验组,增加了 space 属性以观察组件之间的间距变化。layoutWeight 属性的应用:设置了两个 Row 的 layoutWeight 为 1,使它们在父容器中平分可用空间。这在横向排列多个容器时很有用。指定了组件的 width 和 height 相对于父容器的百分比,并调整了 backgroundColor 和间距参数,使代码逻辑清晰、结构清楚。

2.2.1 源码2(Row的间距)

@Entry
@Component
struct PageSpace {
  build() {
    Row() {
      // 对照组:第一个 Row 组件,用于横向排列三个文本组件
      Row() {
        Text("组件1,对照组,横向排列")
          .backgroundColor("#bbf")  // 设置背景颜色为浅蓝色
          .width("10%")             // 宽度为父组件的 10%
          .height("90%")            // 高度为父组件的 90%

        Text("组件2,对照组,横向排列")
          .backgroundColor("#fff")  // 设置背景颜色为白色
          .width("10%")
          .height("90%")

        Text("组件3,对照组,横向排列")
          .backgroundColor("#ff72ff93") // 设置背景颜色为淡紫色
          .width("10%")
          .height("90%")
      }
      .layoutWeight(1) // 设置第一个 Row 组件的权重,使其占用相等空间

      // 实验组:第二个 Row 组件,包含三个文本组件,设置 Row 间距为 15
      Row({ space: 15 }) {
        Text("组件1,实验组,横向排列")
          .backgroundColor("#bbf")
          .width("10%")
          .height("90%")

        Text("组件2,实验组,横向排列")
          .backgroundColor("#fff")
          .width("10%")
          .height("90%")

        Text("组件3,实验组,横向排列")
          .backgroundColor("#ff72ff93")
          .width("10%")
          .height("90%")
      }
      .layoutWeight(1) // 设置第二个 Row 组件的权重,使其占用相等空间

    }
    .height("100%") // 设置主 Row 组件的高度为 100%
    .width("100%")  // 设置主 Row 组件的宽度为 100%
    .backgroundColor("#fcc") // 设置背景颜色为淡粉色
  }
}

在这里插入图片描述

3.结语

column组件内还可以另外添加其他组件,如按钮、开关等。简单内容也简单过一遍。
由于笔者的能力有限,创作的内容有所不足在所难免,也敬请读者包涵和指出,万分感谢!

4.定位日期

2024-11-6;
10:36;

标签:间距,Rom,Column,height,width,列向,组件,Row
From: https://blog.csdn.net/qq_44925904/article/details/143561195

相关文章

  • 【安全架构】监控告警:Prometheus体系中告警的那些事
    原创小斐Lab网络小斐在原生的Prometheus体系中,告警引擎评估模块是集成在Prometheus时序数据库中的,把告警规则定义好,放在Prometheus告警配置模块路径下即可实现对实例告警评估和触发。然后使用Alertmanager做告警路由和告警消息转发。如下消息通知简单原理示意图:而......
  • 什么是promise?
    在JavaScript中,Promise是一个用于处理异步操作的对象,它代表了一个最终会完成(或失败)的异步操作及其结果。Promise提供了一种更清晰和灵活的方式来处理异步代码,相比传统的回调函数(即“回调地狱”),Promise更容易管理和阅读。基本概念状态:Pending(进行中):初始状态,既不是成功也......
  • 微信小程序使用Promise异步请求
     在微信小程序中,如果你希望在一个HTTP请求完成后再继续执行下面的代码,可以将后续代码放入请求的回调函数中。如果不想使用嵌套的回调函数,可以考虑使用 Promise 来处理异步请求。这样可以更清晰地组织代码,还能避免“回调地狱”的问题。这是原方法并不会在执行完http请求后......
  • AI-Prompt、RAG、微调还是重新训练?选择正确的生成式AI的使用方法
    生成式人工智能正在快速发展,许多人正在尝试使用这项技术来解决他们的业务问题。一般情况下有4种常见的使用方法:PromptEngineeringRetrievalAugmentedGeneration(RAG检索增强生成)微调从头开始训练基础模型(FM)本文将试图根据一些常见的可量化指标,为选择正确的生......
  • 解决mysql 的 [HY000][1356] View ‘information_schema.TABLES‘ references invalid
    同事在修改mysql用户权限时修改了关于mysql.infoschema的权限信息,导致无法访问information_schema库下的所有视图,使用数据库连接工具连接MySQL数据库时出现报错情况,使用MySQL终端登录并执行show命令同样报错。报错信息如下:ERROR1356(HY000):View'information_s......
  • Chromium127编译指南 Mac篇(一)- 环境准备详解
    概述在开源浏览器生态系统中,Chromium始终扮演着举足轻重的角色。作为GoogleChrome的技术基石,它不仅支撑着全球最受欢迎的浏览器之一,更为众多定制化浏览器项目提供了坚实的基础。对于渴望探索浏览器技术深度,或计划开发自有浏览器的工程师而言,深入理解Chromium的编译流程是一项......
  • 从模糊搜索到语义搜索的进化之路——探索 Chroma 在大模型中的应用价值
    目录从模糊搜索到语义搜索的进化之路——探索Chroma在大模型中的应用价值一、引言二、实现语义搜索的数据库Chroma1、语义搜索是什么2、Chroma语义搜索的原理三、如何在项目中应用Chroma1、Chroma的实际应用场景2、安装Chroma(python环境) 3、创建嵌入索引4、查......
  • 这款谷歌浏览器chrome插件,让你彻底告别烦人的广告
    前言我之前在上网的时候,经常会遇到各种弹窗广告,或者是谷歌百度的广告,非常影响阅读。后面,我就去找了一个谷歌浏览器的插件,叫作AdblockPlus。如何使用首先,需要安装下这个插件,具体插件的安装方法,可以看我之前的文章。然后,当我们这个插件没有启用的时候,可以看到这个页面上有很多......
  • apisix~prometheus插件的使用
    通过prometheus的插件收集apisix的指标与监控,并上传到服务端,通过grafana对数据进行分析,也是非常必要的。配置values.yaml文件,开启prometheus和metrics,我的apisix是通过helm部署到kubernetes的,我可以通过values.override.{env}.yaml来按着环境进行配置,例如test测试环境valu......
  • Prometheus Exporter的底层原理涉及到几个关键组件和步骤,主要包括Collector、Exporter
    PrometheusExporter的底层原理涉及到几个关键组件和步骤,主要包括Collector、Exporter以及PrometheusServer。以下是这些组件的工作原理和它们如何协同工作的详细解释:1.**Collector(收集器)**:  -Collector负责从目标应用程序或系统收集指标,并将其转化为Prometheus可识别......