【HarmonyOS NEXT星河版开发学习】小型测试案例09-B站卡片

news2024/9/22 10:04:49

个人主页→VON

收录专栏→鸿蒙开发小型案例总结​​​​​

基础语法部分会发布于github 和 gitee上面(暂未发布)

前言

鸿蒙开发中层叠布局通过Stack容器组件实现了强大的页面层叠和位置定位能力。这种布局方式不仅增强了界面的美观性和功能性,也提升了用户的交互体验。开发者可以利用StackLayout精确地控制UI组件的层叠关系和显示优先级,满足各种复杂的布局需求。

知识点概述

鸿蒙OS(HarmonyOS)是一个基于微内核的全场景分布式操作系统,其开发环境提供了丰富的功能和工具,使得开发者可以构建适应多设备的应用程序。在UI设计和布局构建过程中,层叠布局是一种非常实用且常见的布局方式。

基本概念与实现方式

  • 层叠布局的定义:层叠布局(StackLayout)用于在屏幕上预留一块区域来显示组件中的元素,提供元素可以重叠的布局。
  • Stack容器:Stack容器是实现层叠布局的核心组件。容器中的子元素按照添加顺序依次入栈,后一个子元素会覆盖前一个子元素,从而实现层叠效果。

层级管理与Z序控制

  • Z序控制:Stack子组件中可以通过zIndex属性控制层级,zIndex值越大,显示层级越高,即该组件会覆盖在zIndex值较小的组件上方。
  • 应用场景:在实际项目中,广告、卡片层叠效果等需要重叠显示的场景经常会用到层叠布局。

对齐方式与参数配置

  • 对齐方式:Stack组件通过alignContent参数实现位置的相对移动,支持九种对齐方式,包括TopStart、Top、TopEnd、CenterStart、Center、CenterEnd、BottomStart、Bottom和BottomEnd。
  • 参数配置:Stack组件的属性包括alignContent,用于设置子组件在容器内的对齐方式,默认值为Alignment.Center。

层叠布局的使用

  • 代码示例:一个简单的Stack布局示例代码展示了如何使用Stack组件创建层叠效果,并通过zIndex调整层级。例如,一个Stack包含三个子元素,其中第一个子元素的zIndex为2,第二个子元素的zIndex为1,第三个子元素没有zIndex属性,则前两个子元素会显示在第三个子元素上方。
  • 布局顺序:Stack作为容器,容器内的子元素的顺序为Item1->Item2->Item3。

其他布局方式比较

  • 弹性布局(Flex):弹性布局(Flex)提供了更加有效的方式对容器中的子元素进行排列、对齐和分配剩余空间。弹性布局适用于多种复杂的布局需求,如页面头部导航栏的均匀分布、页面框架的搭建、多行数据的排列等。
  • 相对定位与绝对定位:这两种定位方式与层叠布局不同,它们主要用于控制组件在二维平面上的位置,而不涉及层叠和Z序控制。

界面效果展示

代码展示

@Entry
@Component
struct Index {
  build() {
    Column(){
      Column(){
        // 1.图片区域(层叠布局)
        Stack({alignContent:Alignment.Bottom}){
          Image($r('app.media.bzhan_word2'))
            .borderRadius(5)

          Row(){
            Row({space:5}){
              Image($r('app.media.bzhan_public_play_norm'))
                .width(14)
                .fillColor(Color.White)
              Text('80.4万')
                .fontSize(12)
                .fontColor(Color.White)
            }
            .margin({right:10})
            Row({space:5}){
              Image($r('app.media.bzhab_public_comments'))
                .width(14)
                .fillColor(Color.White)
              Text('4724')
                .fontSize(12)
                .fontColor(Color.White)
            }
            Blank()
            Text('16:04')
              .fontSize(12)
              .fontColor(Color.White)
          }
          .padding({left:5,right:5})
          .width('100%')
          .height(24)
        }
        .width('100%')
        .height(125)

        // 2.底部文字区域
        Column(){
          Text('16年火爆全中国的【qq飞车】,如今变成了什么样子?')
            .fontSize(12)
            .lineHeight(16)
          Row(){
            Text(){
              Span('2万点赞')
                .fontSize(10)
                .fontColor('#e66c43')
                .backgroundColor('#fff0e3')
                .padding(2)
                .borderRadius(2)
              Span('  L另唐 8-2')
                .fontSize(10)
                .fontColor('#cacac4')
            }
            .padding(5)
            Image($r('app.media.bzhan_public_more_list'))
              .width(14)
          }
          .margin({top:6})
          .justifyContent(FlexAlign.SpaceBetween)
          .width('100%')
        }
        .padding(5)

      }
      .width(200)
      .height(200)
      .borderRadius(5)
      .backgroundColor(Color.White)
    }
    .width('100%')
    .height('100%')
    .backgroundColor(Color.Gray)
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1994196.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Advanced RAG》-10-Corrective Retrieval Augmented Generation (CRAG)

摘要 CRAG 设计了一个轻量级检索评估器,用于评估针对特定查询检索到的文档的整体质量,并使用网络搜索作为改进检索结果的辅助工具。CRAG 可与基于 RAG 的各种方法无缝集成,并提供了一个插件式的解决方案。 CRAG 的主要思想是引入一个检索评估…

前端面试宝典【vue篇】【5】

在前端开发的世界里,每一次面试都是一次机遇,也是一次挑战。 你是否曾因技术深度不够而错失良机? 或是面对最新的技术趋势感到迷茫? 我们的【前端面试宝典】正是为此而来。 由拥有多年一线实战经验的资深工程师亲自授课,结合最新的行业动态与实战案例,旨在全面提升你的技…

Java与Python的跨界融合:打造高效与灵活的编程体验

目录 一、引言 1.1 为什么结合Java与Python 1.2 结合方式概览 二、实现方法详解 2.1 Web服务接口 2.2 命令行调用 三、高级融合方式 3.1 Jython 3.2 GRPC/Protobuf 四、优势与挑战 4.1 优势 4.2 挑战 五、结论 在当今快速发展的软件开发领域,单一编程语…

零售企业中 SRM 系统与开源 AI 智能名片商城系统的协同作用

摘要:本文深入探讨了 SRM 系统在零售企业与上游供应商关系管理中的关键作用,并引入开源 AI 智能名片商城系统,细致分析了两者如何协同助力零售企业优化供应链、提升竞争力。通过阐述 SRM 系统的功能模块及其对零售企业的多方面积极影响&#…

职业教育物联网实验实训室建设应用案例

在万物互联的时代背景下,物联网技术以其强大的连接能力、数据分析与处理能力,正在深刻改变着社会生产和生活的方方面面。在这一背景下,职业教育也迎来了新的发展机遇和挑战。为了满足社会对物联网技术人才的需求,提高职业教育的质…

七夕警示:探索社工库与网络搜索下的个人隐私泄露与保护策略

随着七夕节的脚步日益临近,空气中弥漫着浪漫与温馨的气息。这个充满爱意的节日,我们沉浸在与心爱之人共享甜蜜时光的同时,不应忽视网络安全和个人隐私保护的重要性。在数字化时代,个人信息泄露的风险无处不在,如何在享…

Nginx隐藏欢迎页Welcome to CentOS

1、背景 刚刚搭建好Nginx,访问了一下根路径,就出现了欢迎页,额,这个得干掉才行。2、解决 网上搜索,说是使用 yum -y install nginx 安装的问题。 额,这个应该是配置的问题吧。原配置 location / {root h…

Linux磁盘管理_文件系统

系列文章目录 提示:仅用于个人学习,进行查漏补缺使用。 1.Linux介绍、目录结构、文件基本属性、Shell 2.Linux常用命令 3.Linux文件管理 4.Linux 命令安装(rpm、install) 5.Linux账号管理 6.Linux文件/目录权限管理 提示:写完文章后&…

Visual Studio 2022: 100 个实用技巧及详细操作方法

目录 1. 界面和环境设置 1.1 调整主题和配色 1.2 自定义工具栏 1.3 使用解决方案资源管理器的筛选功能 1.4 设置多行光标编辑 1.5 利用窗口布局保存和切换 2. 代码编辑 2.1 快速导航到文件、类、方法 2.2 使用代码片段加速编码 2.3 启用代码格式化 2.4 使用 CodeLens…

stm32入门学习12-软件和硬件SPI操作W25Q64

(一)SPI协议 SPI和I2C同样是一种通信协议,SPI相对I2C的优势是更快的传输速度,其和I2C一样为同步传输,即拥有一根时钟线,但是SPI拥有两根数据线,一根用于主机发送,一根用于主机接收&…

Kspider:超级给力的图形化爬虫平台

Kspider:超级给力的图形化爬虫平台 在如今数据驱动的世界,Kspider 作为一款功能强大的图形化爬虫平台,为用户提供了全面的网页数据抓取解决方案。本文将介绍 Kspider 的基本信息、特点以及它相对于其他爬虫工具的优势。 软件简介 Kspider 是…

【黑马】MyBatis

目录 MyBatis简介JDBC缺点:MyBatis针对于JDBC进行简化,简化思路: MyBatis快速入门具体构建步骤解决SQL映射文件的警告提示 Mapper代理开发案例:使用Mapper代理方式完成案例具体步骤详解:Mapper代理方式 Mapper核心配置…

《向量数据库指南》——企业采用非结构化数据的场景及其深远影响

引言 在当今数字化转型的浪潮中,企业数据的种类与规模正以前所未有的速度增长,其中非结构化数据作为信息时代的重要组成部分,其价值日益凸显。Lynn提出的关于企业最先采用非结构化数据的观察,引发了我们对这一领域深入探索的兴趣。Charles的见解则为我们揭示了非结构化数据…

JavaWeb-01(Java进阶内容详解,Html、CSS、JS)

一、前端技术结构分析 网页的结构(HTML)、表现(CSS)、行为(JS) 1.HTML定义界面整体结构 2.CSS定义页面样式 3.JS实现动态效果 二、HTML 2.1安装VS Code及前端开发插件 Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code Code Spe…

高职院校云计算人才培养成果导向系统构建、实施要点与评量方法

一、引言 随着“十四五”规划的深入实施,云计算作为新一代信息技术的关键组成部分,已成为推动各行业数字化转型的重要驱动力。高职院校作为技术技能人才培养的重要阵地,如何根据云计算产业的发展需求,培养具备云计算技术应用与运…

展馆室内导航系统:增强现实技术与数据可视化分析在展馆中的应用

随着科技的飞速发展,展览行业正经历着前所未有的变革。作为信息交流与文化传播的重要场所,展馆在吸引访客、展示展品方面扮演着至关重要的角色。然而,在信息爆炸、时间宝贵以及访客需求日益多样化的今天,传统展馆在导览、管理和服…

PI案例分享--基于DDR4 PHY的VDDQ封装电源完整性分析

随着核心电源网络的电压裕度持续降低,端到端电源完整性建模变得愈发困难,究其原因,是作为系统设计者,我们通常无法得知供应商提供的芯片die模型(die model)的准确性。 通过一个案例对该问题进行研究&#x…

小智纯前端js报表实战4-绝对坐标纵向扩展

绝对坐标-纵向扩展 概述 绝对层次坐标 用于获取扩展后某一位置上的值。如获取A1扩展后的A3单元格的值,就可以在别的单元格如B1中输入A1[A1:3],其公式意义在于获取A1扩展后的第三个单元格的值,其效果如下 绝对坐标-纵向扩展:绝…

JavaEE-多线程编程单例模式

一、等待通知 系统内部,线程之间是抢占式执行的,随即调度,程序可以通过手动干预的方式,能够让线程一定程度的按咱们想要的顺序执行,无法主动让某个线程被调度,但可以主动让某个线程等待。等待通知可以安排…

嵌入式人工智能(45-基于树莓派4B的扩展板-舵机驱动板PCA9685)

1、简介 智能小车、机械臂、摄像头云台会有多个舵机,而微控制器芯片的PWM输出引脚不够的情况下,就可以用PCA9685(16路舵机)来解决这一问题。 PCA9685是一款I2C总线控制的16通道LED控制器,专为红/绿/蓝/琥珀&#xff…