鸿蒙开发深入浅出01(基本环境搭建、页面模板与TabBar)

news/2025/2/24 8:46:53

鸿蒙开发深入浅出01(基本环境搭建、页面模板与TabBar)

  • 1、效果展示
  • 2、下载 DevEco Studio
  • 3、创建项目
  • 4、新建页面模板
  • 5、更改应用信息
  • 6、新建以下页面
  • 7、Index.ets
  • 8、真机运行
  • 9、图片资源文件

1、效果展示

在这里插入图片描述

在这里插入图片描述

2、下载 DevEco Studio

  • 访问官网根据自己的版本进行下载,默认安装下一步即可。
https://developer.huawei.com/consumer/cn/download/

在这里插入图片描述

3、创建项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、新建页面模板

在这里插入图片描述
在这里插入图片描述

/**
* ${PROJECT_NAME} #项目的名称 
* ${FILE_NAME} #文件名称
* Created by ${USER} ON ${DATE} #作者及添加日期
*/
@Entry
@Component
struct ${NAME} {
  build() {
    
  }
}

5、更改应用信息

{
  "string": [
    {
      "name": "module_desc",
      "value": "module description"
    },
    {
      "name": "EntryAbility_desc",
      "value": "description"
    },
    {
      "name": "EntryAbility_label",
      "value": "硅谷租房" # 应用名称
    }
  ]
}

6、新建以下页面

  • Home.ets
  • See.ets
  • Discover.ets
  • Service.ets
  • My.ets
    在这里插入图片描述
    在这里插入图片描述

7、Index.ets

import Home from './Home'
import See from './See'
import Service from './Service'
import Discover from './Discover'
import My from './My'

@Entry
@Component
struct Index {
  @State currentTabBarIndex: number = 0;

  @Builder
  tabBarBuilder(image: Resource, activeImage: Resource, text: string, index: number) {
    Column() {
      Image(this.currentTabBarIndex == index ? activeImage : image).width(28).height(28)
      Text(text).fontSize(10).fontColor(this.currentTabBarIndex == index ? '#000' : '#CBCBCB')
    }
  }

  build() {
    Tabs({ barPosition: BarPosition.End }) {
      TabContent() {
        Home()
      }.tabBar(this.tabBarBuilder($r('app.media.tabbar_home'), $r('app.media.tabbar_home_active'), '首页', 0))

      TabContent() {
        See()
      }.tabBar(this.tabBarBuilder($r('app.media.tabbar_see'), $r('app.media.tabbar_see_active'), '想看', 1))

      TabContent() {
        Service()
      }.tabBar(this.tabBarBuilder($r('app.media.tabbar_service'), $r('app.media.tabbar_service_active'), '服务', 2))

      TabContent() {
        Discover()
      }.tabBar(this.tabBarBuilder($r('app.media.tabbar_discover'), $r('app.media.tabbar_discover_active'), '发现', 3))

      TabContent() {
        My()
      }.tabBar(this.tabBarBuilder($r('app.media.tabbar_my'), $r('app.media.tabbar_my_active'), '我的', 4))
    }.barHeight(50)
    .scrollable(false)
    .onChange((index) => {
      this.currentTabBarIndex = index;
    })
  }
}

8、真机运行

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9、图片资源文件

见资源绑定


http://www.niftyadmin.cn/n/5864126.html

相关文章

笔记 大学物理B下册

机械振动和电磁振荡 简谐振动 简谐振动表达式 如果物体所受合外力的大小总是与物体离开平衡位置的唯一大小成正比且方向相反,那么该物体的运动就是简谐振动。这种性质的力称为线性回复力。线性回复力 F − k x F -kx F−kx d 2 x d t 2 − ω 2 x \frac{d^2…

rust之Tokio学习1

任务 一个 Tokio 任务是一个异步的绿色线程,它们通过 tokio::spawn 进行创建,该函数会返回一个 JoinHandle 类型的句柄 调用者可以使用该句柄跟创建的任务进行交互 示例 spawn 函数的参数是一个 async 语句块,该语句块甚至可以返回一个值&…

python学opencv|读取图像(七十四)人脸识别:EigenFaces算法

【1】引言 前序学习进程中,做的是检测,只是能检测出来由人脸、猫脸和行人,相关文章链接为: python学opencv|读取图像(七十一)使用cv2.CascadeClassifier()函数detectMultiScale()函数实现图像中的人脸检测…

基于Python+django+mysql旅游数据爬虫采集可视化分析推荐系统

2024旅游推荐系统爬虫可视化(协同过滤算法) 基于Pythondjangomysql旅游数据爬虫采集可视化分析推荐系统 有文档说明 部署文档 视频讲解 ✅️基于用户的协同过滤推荐算法 卖价就是标价~ 项目技术栈 Python语言、Django框架、MySQL数据库、requests网络爬虫…

智能控制基础应用-C#Codesys共享内存实现数据高速交互

智能控制基础应用-C#&Codesys共享内存实现数据高速交互 文章目录 智能控制基础应用-C#&Codesys共享内存实现数据高速交互前言一、 Codesys共享内存程序实现二、Python共享内存程序实现2.1 界面说明 三、功能测试注意事项 前言 共享内存是一种高效的进程间通信&#xf…

基于传统信息检索算法 BM25 的检索器 和 基于大语言模型生成的文本嵌入(dense embeddings)来计算相似度的检索器 两者的区别和联系

首先给出示例代码: #### INDEXING ##### Load blog import bs4 from langchain_community.document_loaders import WebBaseLoader# 设置一个常见的浏览器 User-Agent 字符串 os.environ["USER_AGENT"] "Mozilla/5.0 (Windows NT 10.0; Win64; x64…

ZLMediaKi集群设置

要在集群环境中部署 ZLMediaKit,您可以按照以下步骤进行操作。ZLMediaKit 是一个高性能的流媒体服务器,支持 RTMP、RTSP、HLS 等协议。以下是一个详细的集群部署方案: ### 1. 环境准备 - **服务器**:准备多台服务器,…

使用 Power Automate 转换 HTML to PDF

前言 今天,我们看一下如何使用Adobe PDF服务,转换HTML到PDF。 正文 1.先在Flow的最上面,声明两个参数,如下图: 2.通过搜索找到Adobe PDF Services,如下图: 3.找到convert-static-html-to-pdf&am…