鸿蒙应用开发实践示例:创建首页

鸿蒙应用开发实践示例:创建首页

    • 效果示例图
    • 示例代码

效果示例图

在这里插入图片描述

示例代码

import { window } from '@kit.ArkUI';@Entry
@Component
struct Index {//@Provide和@Consume,应用于与后代组件的双向数据同步,应用于状态数据在多个层级之间传递的场景@Provide("pageInfo") pageInfo: NavPathStack = new NavPathStack();private tabsController: TabsController = new TabsController();@State currentIndex: number = 0;@State tabList: FooterTab[] = [{value: '资讯',icon: '/resources/base/media/home_no.png',activeIcon: '/resources/base/media/home_ok.png'}, {value: '赛事',icon: '/resources/base/media/match_no.png',activeIcon: '/resources/base/media/match_ok.png'}, {value: '指南',icon: '/resources/base/media/main_no.png',activeIcon: '/resources/base/media/main_ok.png'}, {value: '店铺',icon: '/resources/base/media/store_no.png',activeIcon: '/resources/base/media/store_ok.png'}, {value: '我的',icon: '/resources/base/media/mine_no.png',activeIcon: '/resources/base/media/mine_ok.png'}];@BuilderPageMap(name: string) {}@BuilderBottomTabBarBuilder(item: FooterTab, index: number) {Column() {if (index === 2) {Image(this.currentIndex === index ? item?.activeIcon : item?.icon).width(40).height(40).margin({top: -13});} else {Image(this.currentIndex === index ? item?.activeIcon : item?.icon).width(27).height(27);}Text(`${item?.value}`).margin({top: 6}).fontSize(12).fontColor(this.currentIndex === index ? '#EB5747' : '#ccc').fontWeight(this.currentIndex === index ? '500' : '400');}.justifyContent(FlexAlign.End).height(80).padding({bottom: 15});}/*** 在创建自定义组件的新实例后,在执行其build()函数之前执行* */aboutToAppear(): void {this.setWindowLayoutFullScreenAPI()}// 设置当前页面全屏显示setWindowLayoutFullScreenAPI() {console.log("测试设置当前页面全屏显示函数")window.getLastWindow(getContext()).then(windowStage => {windowStage.setWindowLayoutFullScreen(true)})}build() {Navigation(this.pageInfo) {Tabs({barPosition: BarPosition.End,controller: this.tabsController}) {TabContent() {Text('001');}.tabBar(this.BottomTabBarBuilder(this.tabList[0], 0));TabContent() {Text("002");}.tabBar(this.BottomTabBarBuilder(this.tabList[1], 1));TabContent() {Text("003");}.tabBar(this.BottomTabBarBuilder(this.tabList[2], 2));TabContent() {Text("004");}.tabBar(this.BottomTabBarBuilder(this.tabList[3], 3));TabContent() {Text("005");}.tabBar(this.BottomTabBarBuilder(this.tabList[4], 4));}//设置是否可以通过滑动页面进行页面切换.scrollable(false).barHeight(80).vertical(false).barBackgroundColor("transparent").expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]).onChange((index: number) => {console.log("[首页]", index)this.currentIndex = index;}).backgroundImage('/resources/base/media/bottomTabBg.png').backgroundImageSize({ width: '100%', height: 105 }).backgroundImagePosition(Alignment.BottomEnd);}.mode(NavigationMode.Stack)//设置是否隐藏工具栏.hideToolBar(true)//设置是否隐藏标题栏.hideTitleBar(true)//设置是否隐藏标题栏中的返回键.hideBackButton(true).navDestination(this.PageMap).backgroundColor("#f1f3f5").width('100%').height('100%');}
}interface FooterTab {value: string;icon: string;activeIcon: string;
}

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

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

相关文章

StringUtils 工具类

在日常的编程工作中,字符串(String)处理是一个非常常见且重要的任务。无论是字符串的判空、截取、转换大小写、分隔、比较,还是去除多余空格、拼接、使用正则表达式等操作,都需要我们编写大量的代码来处理各种边界情况…

【视觉SLAM】Windows下编译Pangolin-0.5,显示SLAM运动轨迹

1. 三方库配置 Pangolin v0.5 eigen3 v3.3.8 glew v2.1.0 1.1 glew eigen3 glew:直接下载预编译版本即可(注意:查看自己电脑显卡支持的OpenGL版本,下载支持对应版本的glew,不然无法显示窗口);e…

人工智能、机器学习与深度学习:层层递进的技术解读

引言 在当今科技快速发展的时代,人工智能(AI)已经成为一个热门话题,几乎渗透到了我们生活的方方面面。从智能手机的语音助手,到自动驾驶汽车,再到医疗诊断中的图像识别,人工智能的应用正在改变我…

如何构建数仓中的维度拉链表

1 什么是拉链表 1)拉链表是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。 2)使用拉链表既能满足反应数据的历史状…

后端SpringBoot学习项目-项目基础搭建

IDEA创建SpringBoot项目 大佬文章,有基础者可以直接打开参考。我这个记录的是纯纯小白的步骤 创建项目 按钮新建 点击按钮-----新建项目 弹窗配置–生成器 弹窗中选择生成器 ---- Spring Initializr ○ 服务器URL修改为 start.springboot.io start.aliyun.co…

Android CarrierConfig 参数项和正则匹配逻辑

背景 在编写CarrierConfig的时候经常出现配置不生效的情况,比如运营商支持大范围的imsi,或者是测试人员写卡位数的问题等等,因此就需要模式匹配(包含但不限于正则表达式)。 基本概念: 模式匹配涉及定义一个“模式”&a…

《青牛科技 GC6125:驱动芯片中的璀璨之星,点亮 IPcamera 和云台控制(替代 BU24025/ROHM)》

一、GC6125 在 IPcamera 和云台控制中的卓越表现 驱动能力:为监控注入强劲动力 GC6125 作为一款专为 IPcamera 和云台控制而设计的驱动芯片,拥有令人惊叹的驱动能力。在云台电机的驱动方面,它就像一位技艺精湛的驭手,能精准地掌控…

qt QUndoView详解

1、概述 QUndoView 是 Qt 框架中用于显示 QUndoStack(撤销堆栈)内容的视图类。它通常与 QUndoStack 一起使用,为用户提供了一个可视化的界面来查看和操作撤销/重做历史。QUndoView 可以显示堆栈中的每个命令,并允许用户通过界面进…

spring:Spring Security实践过程中的报错总结

文章目录 问题1报错解决 问题2报错解决 问题3报错解决 问题4报错解决 问题5报错解决 问题6报错解决 问题1 报错 You have entered a password with no PasswordEncoder. If that is your intent, it should be prefixed with {noop}. 解决 Spring Security 期望密码使用 Pa…

目前对于后期的打算

在完成了 Python 基本语法的学习后,我犹如推开了编程世界的一扇大门,初窥门径却也深知前方还有广袤无垠的知识天地等待我去探索。Python 作为一门广泛应用于软件开发、数据分析和人工智能等领域的高级编程语言,在当今数字化时代具有举足轻重的…

多种算法解决组合优化问题平台

🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年11月11日7点12分 点击开启你的论文编程之旅https://www.aspiringcode.com/content?id17302099790265&uidef7618fa204346ff9…

C/C++逆向:结构体逆向分析

在C/C程序的逆向分析中,结构体的逆向分析是非常重要的。结构体是C/C中管理和组织数据的一种主要方式。了解它们的布局可以帮助你理解程序是如何存储、处理和传递数据的,结构体常用于组织和管理复杂的数据,理解结构体有助于我们更好地还原程序…

Kettle启动闪退(Couldn‘t read the database cache)

强制关机之后,kettle启动闪退 具体可以用debug模式运行脚本来定位问题 启动之后查看运行日志 DEBUG: Using JAVA_HOME DEBUG: _PENTAHO_JAVA_HOMEC:\Application\JDK DEBUG: _PENTAHO_JAVAC:\Application\JDK\bin\java.exeC:\Application\Kettle\data-integratio…

【机器学习】任务十:从函数分析到机器学习应用与BP神经网络

目录 1.从函数分析到机器学习应用 1.1 3D曲面图可视化报告 1.1.1 目标 1.1.2 代码分析 1.1.3 结果分析 1.1.4 观察与总结 1.1.5 结论 1.2 一元函数梯度计算报告 1.2.1 目标 1.2.2 代码分析 1.2.4 计算结果 1.2.5 优势与意义 1.2.6 结论 1.3 一元函数梯度和二阶导…

写一段python程序,利用时间序列分析的方法,预测股价的趋势

要使用时间序列分析来预测股价趋势,你需要使用统计学方法来分析历史股价数据,并基于这些数据来预测未来的股价走势。以下是一个简单的Python程序,使用ARIMA(自回归积分滑动平均模型)来预测股价趋势。 首先,…

C++初阶——类和对象(中)

目录 1、类的默认成员函数 2、构造函数 3、析构函数 4、拷贝构造函数 5、赋值运算符重载函数 5.1 运算符重载 5.2 赋值运算符重载函数 6、取地址运算符重载函数 6.1 const成员函数 6.2 取地址运算符重载函数 1、类的默认成员函数 默认成员函数就是用户没有显式实现&a…

蓝牙电话-如何做到无人值守(方案探讨)

蓝牙电话-如何做到无人值守(方案探讨) 一、前言 在蓝牙电话出现和在市场上使用的过程中,有好多的客户和友商隐晦或含蓄的咨询,问说蓝牙方案及其构建的体系,能不能做到无人值守?就是那种因业务原因需要把设备…

网络号和网络地址一样吗?真相揭晓

网络号和网络地址是两个在计算机网络领域中经常被提及的概念,尽管它们之间存在一定的关联性,但它们并不等同。为了深入理解这两个概念,我们需要从它们的定义、功能、应用以及相互关系等方面进行详细探讨。 一、网络号的定义与功能 网络号&am…

计算机网络-1.2分层结构

文章目录 三种分层结构OSI 七层模型(Open Systems Interconnection Model)TCP/IP 四层模型混合模型各层之间的关系PDU,SDU,PCIPDU(Protocol Data Unit)SDU(Service Data Unit)PCI(Protocol Cont…

css:还是语法

emmet的使用 emmet是一个插件&#xff0c;Emmet 是 Zen Coding 的升级版&#xff0c;由 Zen Coding 的原作者进行开发&#xff0c;可以快速的编写 HTML、CSS 以及实现其他的功能。很多文本编辑器都支持&#xff0c;我们只是学会使用它&#xff1a; 生成html结构 <!-- emme…