仓颉鸿蒙开发:制作底部标签栏

鸿蒙第16篇——数据持久化 本文介绍的数据持久化是指鸿蒙应用的数据持久化存储。它是将内存中的数据通过文件或数据库的形式保存到设备存储中。鸿蒙支持多种数据存储方式, 包括用户首选项Preferences、 键值型数据库KV-Store和关系型数据库。 阅读详情

今天制作标签栏,标签栏里面的有4个区域:首页、社区、消息、我的,以及对应的图标。点击的区域显示为高亮,未点击的区域显示为灰色

简单的将视图上面区域做一下

一、制作顶部公共视图部分

internal import ohos.base.*
internal import ohos.component.*
internal import ohos.state_manage.*
import ohos.state_macro_manage.*
import ohos.resource_manager.*

@Component
public class TopView {
    func build() {
        Row(10) {
            Image(@r(app.media.cjLoge1)).width(50).height(50)
            Text("仓颉鸿蒙开发集成应用").fontSize(22).fontWeight(FontWeight.Bold)
        }.width(100.percent).height(12.percent).justifyContent(FlexAlign.Center)
    }
}

二、中间内容部分:添加了两个文本组件

            //中间内容区
            Column() {
                Text("仓颉鸿蒙").fontSize(36).fontColor(0x00BFFF)
                Text("制作底部标签栏").fontSize(30).fontColor(0x00BFFF)
            }.width(100.percent).height(80.percent).justifyContent(FlexAlign.Center)

三、底部标签栏的制作

        1.新建一个数组,用于存放文字内容和图标位置信息,方便使用循环遍历
    //定义底部标签栏数组,数组中的元素为元组类型
    var menuDatas: Array<(String, String)> = [
        ("首页", "resource://media/house_fill.svg"),
        ("社区", "resource://media/beidou_satellite_fill.svg"),
        ("消息", "resource://media/ellipsis_message_fill.svg"),
        ("我的", "resource://media/person_crop_circle_fill_1.svg")
    ]
        2.标签栏分为4个区域:首页、社区、消息、我的,采用行布局;每个区域由图片组件和文本组件组成,采用列布局;而这些信息已经存放在数组里面了,使用FouEach循环遍历数组,为每一个元素添加组件信息;设置点击事件,通过判断索引号是否相等,将选中的标签设置为高亮颜色,未选中的标签颜色为灰色
    @State
    var currentIndex: Int64 = 0 //记录当前点击的索引号
            //底部标签栏
            Row() {
                ForEach(
                    this.menuDatas,
                    itemGeneratorFunc: {
                        item: (String, String), index: Int64 => Column() {
                            Image(item[1])
                                .width(30)
                                .height(30)
                                .fillColor(if (this.currentIndex == index) {
                                    0x00BFFF
                                } else {
                                    0xD3D3D3
                                })

                            Text(item[0])
                                .fontSize(14)
                                .fontWeight(Bold)
                                .fontColor(if (this.currentIndex == index) {
                                    0x00BFFF   // 相等,设置为高亮色
                                } else {
                                    0xD3D3D3   //不相等,设置为灰色
                                })
                        }
                            .width(20.percent)
                            .height(100.percent)
                            .justifyContent(FlexAlign.Center)
                            //对每一块设置点击事件
                            .onClick(
                                {
                                    event =>
                                    this.currentIndex = index
                                    Hilog.info(0x000000, "hilog", "当前点击的索引为:${this.currentIndex}")
                                }
                            )
                    }
                )
            }
                .width(100.percent)
                .height(8.percent)
                .backgroundColor(0xF5F5F5)
                .justifyContent(FlexAlign.SpaceBetween)
                .borderRadius(5) //设置圆角

        模拟机运行效果:例如,点击“消息”,显示为高亮

   


        最后,标签栏中使用的图标为svg格式,因为image组件中的fillColor构造函数,仅对svg图源生效。

2023年LitCTF web组wp 1、导弹迷踪2、1zjs3、php是世界上最好的语言!!4、Ping5、我Flag呢?7、作业管理系统8、Vim yyds10、这是什么?SQL!注一下!11、Flag点击就送!12、就当无事发生13、彩蛋。 阅读详情

相关推荐

Code Composer Studio 12.0.0版本 官方例程导入实战指南

本文详细介绍了在Code Composer Studio 12.0.0版本中,如何利用内置的Resource Explorer工具高效导入官方例程的完整实战指南。通过分步讲解定位开发板、导入工程、配置编译器及调试验证等关键操作,帮助开发者快速上手TI微控制器开发,避免常见错误,有效提升学习与开发效率。

weixin_29169899的博客 122

1、DevEco Studio 鸿蒙仓颉应用创建

因为仓颉是静态编译型语言,使用仓颉开发的应用执行效率更高。而且主打全场景,后续可并入仓颉生态,其和ArkTS都是基于ArkUI进行开发,最大的区别是typescript和仓颉语法间的差异。

qq_51355375的博客 1858

华大HC32F460串口超时中断+DMA收发实战:从STM32迁移的避坑指南

本文为从STM32迁移至华大HC32F460的开发者提供了串口DMA收发的实战避坑指南。核心在于理解HC32F460以串口接收超时中断替代空闲中断的机制,并调整DMA配置策略:DMA应设置为由串口接收事件持续触发搬运,超时中断仅负责通知和重置DMA,从而实现高效可靠的数据收发。

weixin_29175469的博客 114

Windows运行你的第一个仓颉语言程序

以上就是今天要讲的内容,本文详细的介绍了仓颉开发包的配置教程,和Visual Studio Code的安装与配置教程,还教会你运行了你的第一个仓颉Hello World。

classpython的博客 864

Unity 数字孪生笔记1 工具介绍

前言 工欲善其事必先利其器 流程思考 数字孪生本质上一种基于实际物理数据的可视化方案,通过对接实际数据,在三维界面中展示孪生结果。 那么这个流程就很简单了。 整个流程分为三块:数据来源-》数据分析-》数据展示 输入数据 首先我们需要考虑我们能拿到什么。第一,实际物体的三维数据从哪里来,第二,实际数据怎么获取到。 模型数据 工业上常常会用到CAD模型,CAD模型具有精确、统一的特点,但是CAD不是三角面片,我们不能直接导出到Unity中,而且导入之后有很多不合理的地方,例如面片杂乱、面数过高等问题。针对这个

Thissky的专栏 1万+

Python 爬取新浪财经 7x24(1): 下载数据

前言 最近在做一个需要很多财经数据的项目。于是想到可不可以通过爬虫来解决(尝试白嫖)。 提供财经数据的网站有很多个,其中比较靠谱和更新比较及时的应该是新浪7x24 live数据。 http://finance.sina.com.cn/7x24/?tag=0 这个问题有一定的难度,因为这个网页是动态加载的。每一次只会加载部分数据,而只有拉到底部才可以加载新的数据。 于是乎,我们要做的事情是: 下载数据 保存到数据库 本篇介绍如何下载数据。 代码 闲言少叙书归正文,代码的实现如下: import reque

ZJ_11701的博客 2905

Cangjie/HarmonyOS-Examples 示例项目分析:02-UIPlayground

Cangjie/HarmonyOS-Examples 示例项目分析:02-UIPlayground 【免费下载链接】HarmonyOS-Examples 本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计! ...

gitblog_01191的博客 1168

coredump文件的原理是啥

Core Dump(核心转储)是操作系统在程序崩溃(如段错误、非法指令等)时自动生成的一个文件,它包含了程序崩溃瞬间的。通过 core dump,开发者可以像“时间回溯”一样检查程序崩溃瞬间的状态,是调试复杂问题的利器!终止时,Linux 内核会生成 core 文件。不会生成 core dump,因为它们是“优雅终止”信号。这样 core 文件会直接压缩存储,节省磁盘空间。的文件(类似可执行文件),可以用。Core 文件本质上是一个。

二进制君 384

HarmonyOS API 26 Navigation路由栈上限:stackSizeLimit、过载保护与容量观测

解析API 26 NavigationConfiguration.stackSizeLimit的活跃页面节点限制,并用入口节流、容量水位、降级策略和纯函数测试治理深栈风险。

2401_84996024的博客 338

倍福EL5101模块连接编码器

1、 EL5101模块简介:EL5101为单通道增量型编码器计数模块,一共有EL5101-0000、EL5101-0010、EL5101-0011、EL5101-0090(尚未供货)四种型号,其中EL5101-0000比较常用,本例使用EL5101-0000连接增量型编码器 2、 硬件外观和接线 在这里插入图片描述 3、 指示灯说明 4、和编码器连接的案例 ......

weixin_41883890的博客 6501

PCIe协议之 Equalization篇 之 谈谈几种模式

对于两端有能力最高支持 32 GT/s 及以上速率的设备,如果把目标速度设置为 8 GT/s 或 16 GT/s 速率,是不建议采用 Bypass-Equalization-to-Highest-Rate 模式的,即便采用了,也不会针对 8 GT/s 或 16 GT/s 的目标速率进行 EQ。对于支持 32 GT/s 及以上速率的设备,其可能根本无需工作在 8 GT/s 或 16 GT/s 速率,这时再针对 8 GT/s 或 16 GT/s 速率进行 EQ,多少有点浪费。

那么菜的博客 567

AppGallery 上架自检 SOP:签名、隐私对齐与包体校验实战【鸿蒙心迹】

上架被驳回多因签名、隐私声明与包体不一致。本文提炼“签名→隐私对齐→包体校验”自检SOP,配套一键脚本与权限三角校验代码,实现90%驳回前置拦截。通过CI强制release签名、代码/声明/功能三者权限对齐、包体完整性校验,确保提审一次过。实战清单可直接抄,让过审从运气变为流程。

wdracky的专栏 343

STM32F103C8T6驱动DHT11温湿度传感器程序

本程序基于 STM32F103C8T6 微控制器,通过 GPIO 模拟单总线通信时序实现对 DHT11 温湿度传感器的数据采集,主机采用拉低数据线的方式触发传感器启动,并通过检测高电平持续时间区分逻辑“0”和“1”,依次读取湿度和温度的整数数据及校验位,经过校验后将有效结果存入缓存数组,实现对环境温湿度的周期性测量与处理。

加斯顿工程师的博客 201

【鸿蒙专题与实战】测试体系:单元测试、组件测试与 UI 测试

本文系统讲解鸿蒙开发中的三层测试实践:底层单元测试(用Hypium框架,优先覆盖纯函数、边界与异常)、中层ViewModel逻辑、顶层仅测3-5条关键UI路径。强调测试应“越往下写得越多”,因单元测试快且成本低,而UI测试慢易出错。通过实例说明断言拆分提升定位效率,结合覆盖率报告(hvigorwtest --coverage)发现盲区,核心是“用覆盖率找漏测,而非追求数字”。附五步落地清单:建测试文件、按优先级补用例、精简UI测试、生成报告、定位未覆盖行。下一篇将开启实战项目:从需求到上架全流程。

信息安全领域优质创作者|操作系统领域专家 190

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

窗口销毁了监听还在,HarmonyOS 7 生命周期释放的归属分界

综上所述,onWindowStageWillDestroy 是窗口监听的最后安全出口,onWindowStageDestroy 只负责断开窗口引用,onDestroy 管 Ability 级资源——三者不是“程度不同的退出回调”,而是各自有明确的归属范围。窗口监听的所有者是 WindowStage,定时器的所有者是 UIAbility,播放器的所有者是页面或 Ability(取决于你在哪一层创建的),ApplicationContext 监听的所有者是 Ability 的 context。

qq_61905492的博客 213

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

20 嵌入式系统架构:架构模式、实时操作系统、鸿蒙案例

嵌入式架构模式怎么选、RTOS 和通用操作系统差在哪、优先级反转怎么破?本篇把前后台、中断驱动、管态目态几种结构排成一条演进线,手把手算 RMS 可调度界限、判断任务集能不能跑得动,再把优先级继承与优先级天花板两种解法对上号,配鸿蒙案例讲清工程落地。

weixin_46316564的博客 218

HarmonyOS API 26 HMAF Skill 可解释任务计划与失败回退

围绕 HMAF Skill 的输入校验、权限边界、任务计划和失败回退,建立可观察、可重试的应用侧智能体执行模型。

2401_84996024的博客 301

鸿蒙 PC 桌面端应用上架实战:图匠流程图编辑器从上游 draw.io 发行包到 AGC 过审的 SIGABRT 收敛之路

鸿蒙 PC 桌面端应用上架实战:图匠流程图编辑器从上游 draw.io 发行包到 AGC 过审的 SIGABRT 收敛之路

wei_shuo的博客 1万+

RN鸿蒙空间音频实战

示例仓库:https://atomgit.com/m0_37170006/react-native-ohos-spatial-audio 社区导引:框架源码与版本发布见 https://atomgit.com/CPF-RN/ohos_react_native/tree/0.84-main CPF-RN 鸿蒙社区:https://atomgit.com/CPF-rn。

buhuisuanfa的博客 2万+

HarmonyOS PC 端适配实战:断点、分栏与键鼠交互

本文详解鸿蒙HarmonyOS在PC端的适配核心:以断点系统按窗口宽度(sm/md/lg)动态布局,结合GridRow与Navigation实现响应式分栏;重点强调键鼠交互(焦点、hover、右键、快捷键、滚轮)占七成工作量;通过交互模式抽象统一触屏与鼠标逻辑;强制声明最小窗口尺寸并自测小窗口场景;最终以“列表+详情”真实案例展示数据层一致、展示层双态的适配策略。

信息安全领域优质创作者|操作系统领域专家 222

鸿蒙沉浸光感开发适配

设备材质档位:EXQUISITE(精致,全光效,高性能设备)、GENTLE(均衡,默认)、SMOOTH(轻量,仅基础效果,低算力设备)、ADAPTIVE(自适应,系统自动识别算力选档,业务首选);用户系统设置三档(强/均衡默认/弱):本质是对透明度、反色率、折射强度的精细调控。用户的三档偏好由系统底层自动映射到渲染参数,应用只需一次定义材质,界面就会随用户设置平滑过渡,完全不需要针对三档分别写适配。

qq_63223749的博客 458

操作系统安全体系能到哪一步?卓伊凡:服务端看认证,Ubuntu看默认,欧拉看体系,鸿蒙是另一条路

操作系统安全体系当前已实现分层保障:内核级强制访问控制(如SELinux、AppArmor)、默认攻击面收窄、密码学加密与制度化测评构成四重防线。在官方测评中,华为欧拉V3、阿里云服务器等三款系统达Ⅰ级安全可靠标准,鸿蒙桌面则首获Ⅱ级认证。Ubuntu高版本默认安全工程化出色,但加固也可能引入新漏洞。欧拉与鸿蒙技术路线不同——前者为服务端Linux加固体系,后者为终端微内核+形式化验证架构,二者可协同构建“端云安全”,但不可混为一谈。安全本质是相对的,需结合场景、运维能力与测评体系理性选型。

一颗优雅草科技-央千澈的优快云博客~只想无穷无尽的学习~作息早8-晚8 170

【鸿蒙心迹】应用沙箱与文件管理——fs 接口与安全路径实战(HarmonyOS 7.x)

文件写到哪了?为什么读不到?跨应用分享文件怎么传?——应用沙箱隔离让文件操作和传统 OS 不同。本文用图片缓存/文档导出/跨应用分享为案例,讲清沙箱目录结构、fs 接口、FileUri 权限,附 5 个踩坑。

腾讯云创作之星、华为云云享专家,深耕电商全栈高并发系统实战,分享可商用商城项目源码。 582

鸿蒙远程控制软件哪个好?华为远程PC、ToDesk、向日葵三款实测

综合来看,本次横测最终更推荐ToDesk:它在支持跨品牌连接的基础上,外接鼠标、全屏远控、移动设备协助和多屏功能覆盖更完整,更适合作为主力远控工具。

2401_85083137的博客 372

HarmonyOS 分布式深度:跨端迁移、数据对象与多设备协同

本文深入解析鸿蒙分布式能力实战,聚焦跨端迁移、协同与共享三大形态,详解权限配置、设备发现、onContinue状态管理及分布式数据对象、KV同步机制。强调“先分清场景”“前置条件必全”“数据需重验”,揭示迁移失败、同步失效等七大常见坑,指导开发者规避陷阱,实现真实可用的多设备协同。

信息安全领域优质创作者|操作系统领域专家 121

开源鸿蒙跨平台直播|Compose 入门:从基础组件到鸿蒙原生互通

用 Compose 写一个界面,改完状态,页面却没有跟着刷新;想在 Compose 页面里嵌一个 ArkUI 原生组件,边界又该划在哪里?当滚动、安全区、输入法和资源访问都要落到鸿蒙上,这些系统能力怎样接进来?开源鸿蒙跨平台系列直播第 22 期面向刚接触 Compose 的开发者,用一个逐步完善的示例应用讲清声明式 UI 的基本写法。

白天写代码,晚上追AI大模型,偶尔搞点八卦 开源动态|技术干货|实习机会|生态活动 我负责分享,你负责变强 166

HarmonyOS API 26 Navigation 连续栈操作:中间过程合并、最终状态与强制新实例

解析NavPathStack连续操作只呈现最终结果的边界,治理pop后push同名页面、批量意图合并、后台刷新与重复导航。

2401_84996024的博客 254
上一篇: 仓颉语言---I/O流机制
下一篇: 仓颉语言---Socket编程
w_zero_one
博客等级 码龄2年 149粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值