当前位置: 首页 > news >正文

网站开发流程镇江网站建设制作公司

网站开发流程,镇江网站建设制作公司,做外贸哪个网站比较好2017,做网站编码一、前言 每一个App都应该有一个首页,在Android中一般由MainActivity Navigation Fragment * N (随便你怎么组合,用别的也一样),鸿蒙呢?瞅瞅吧。阿弥陀佛,苦逼Android学完Java学Dart、学完Da…

一、前言

每一个App都应该有一个首页,在Android中一般由MainActivity + Navigation + Fragment * N (随便你怎么组合,用别的也一样),鸿蒙呢?瞅瞅吧。阿弥陀佛,苦逼Android学完Java学Dart、学完Dart学Kotlin、学完Kotlin学Compose、学完Compose,HarmonyOS来啦!艹(更别说还有Framework)艹艹艹。

如果您有任何疑问、对文章写的不满意、发现错误或者有更好的方法,欢迎在评论、私信或邮件中提出,非常感谢您的支持。🙏

二、准备

因为众所不周知的原因,用的是编译SDK是9。DEV版本是DevEco Studio 4.0 Release。以及我只简单的写了一下底部的Tab,具体的内容也只有一个Text作为填充物~~~ 主要还是分享给大家如何写一个首页的基本代码啦~。

三、你需要一个项目

我们使用最最最基本的项目结构就好了,你可能需要如此做

File->New->Create Project->Application->Empty Ability->Next->(API 9)->Done->Finish 完事。

四、准备一点数据

显然,一个首页会有一个底部导航栏。一般而言会是“文字+图片”的组合,并且都具有选中状态、非选中状态。再显然这玩意是个数组。我们准备下

  1. 新建一个data/MainCategory.ets文件

    记得新建一个data文件夹

    简单的在里面定义一个数据结构

 // 定义一个接口来表示项目类别的结构。export interface ItemCategory {// 当类别被选中时显示的图像资源。// 图像文件的引用selectedImage: Resource,// 未被选中时显示的图像资源。// 用于在用户界面上区分选中和未选中的状态。unselectedImage: Resource,// 类别的标题资源。// 一个字符串资源的引用title: Resource}

贴心的加上注释。PS:export表示某个实体(比如一个类、接口、变量或函数)应该被导出,使得它可以在其他文件或模块中被导入和使用。

  1. 构造一丢丢数据

    我们打算做四个页面,所以准备四个数据吧~

 export const MAIN_CATEGORIES: ItemCategory[] =[{selectedImage: $r('app.media.icon_home_select'),unselectedImage: $r('app.media.icon_home_unselect'),title: $r("app.string.main_home")},{selectedImage: $r('app.media.icon_group_select'),unselectedImage: $r('app.media.icon_group_unselect'),title: $r("app.string.main_group")},{selectedImage: $r('app.media.icon_message_select'),unselectedImage: $r('app.media.icon_message_unselect'),title: $r("app.string.main_message")},{selectedImage: $r('app.media.icon_mine_select'),unselectedImage: $r('app.media.icon_mine_unselect'),title: $r("app.string.main_mine")}]

PS:const关键字用于声明一个常量,意味着一旦被赋值后,其值就不能被改变(PPS:如果变量引用的是一个对象或数组,那么对象的属性或数组的元素是可以被修改)。

  1. 温柔的导入

回到我们的Index.ets。让我们导入刚刚准备的数据~

 import { ItemCategory, MAIN_CATEGORIES } from './data/MainCategory'

import就是导入的意思,这玩意一般在文件的最前面。

{}用来声明你要导入这个文件中的什么(PS:这玩意能换名字)

 import { ItemCategory, MAIN_CATEGORIES as NewName} from './data/MainCategory'

from 显然没什么用

./聪明的你,很清楚的知道这玩意的意思是:表示当前文件所在目录。顺带还想到了../表示:父目录。那还有......../?抱歉,没有了。但是你可以这么写

 import { ItemCategory, MAIN_CATEGORIES as NewName} from '../../main/ets/data/MainCategory'

这样你就可以无限套娃了~一直../下去吧!少年!

五、准备好Tab

首先,肯定有当前展示页面之分,所以我们需要记录下选中的页面的Tab的Index

 @State tabCurrentIndex: number = 0

PS:@State装饰的状态变量,一旦变量拥有了状态属性,就和自定义组件的渲染绑定起来。当状态改变时,UI会发生对应的渲染改变(官网抄的)。

我们直接使用鸿蒙之超能Tab之Tab,

 import { ItemCategory, MAIN_CATEGORIES } from './data/MainCategory'/*生成的别管*/@Entry/*生成的别管*/@Component/*struct 生成的别管*/struct Index {@State tabCurrentIndex: number = 0/*build UI都写在这*/build() {// 创建 Tabs 组件,设置其属性Tabs({ barPosition: BarPosition.End }) {// ForEach 用于遍历 MAIN_CATEGORIES,为每个元素创建 TabContent 组件ForEach(MAIN_CATEGORIES, (item: ItemCategory, index: number) => {// 创建 TabContent 组件TabContent() {// 在这里可以添加 TabContent 组件的内容}// 设置 TabContent 组件的 tabBar 属性.tabBar(/* 这里可以设置 tabBar 相关属性 */)})}// 设置 Tabs 组件的其他属性.scrollable(false) // 设置是否可滚动 (首页一般来说,左右不能滑动吧?).barHeight(56) // 设置选项卡高度.barWidth('100%') // 设置选项卡宽度.vertical(false) // 设置选项卡排列方式(垂直或水平).backgroundColor(0xFFFEFEFE) // 设置背景色// 设置当选项卡改变时的回调函数.onChange((index: number) => {this.tabCurrentIndex = index; // 更新当前选中的选项卡索引})}}

可以看到,我们的Tab已经准备好了!然后我们需要填充下TabBar

 // 使用 @Builder 装饰器,表示 TabBarBuilder 是一个构建器方法@BuilderTabBarBuilder(index: number, selectedImage: Resource, unselectedImage: Resource, tabBarName: Resource) {// 构建一个列布局(Column),用于垂直排列子组件Column() {// 在列中添加一个图像组件// 如果当前索引与传入的索引相同,则显示选中的图像,否则显示未选中的图像Image(this.tabCurrentIndex === index ? selectedImage : unselectedImage).width(24) // 设置图像宽度.height(24) // 设置图像高度.margin({ bottom: 4 }) // 设置底部外边距​// 在列中添加一个文本组件,用于显示选项卡名称Text(tabBarName).fontSize(10) // 设置字体大小.fontFamily('HarmonyHeiTi-Medium') // 设置字体.fontColor(this.tabCurrentIndex === index ? 0xFF2E2F2E : 0xFF848683) // 设置字体颜色,根据选中状态改变}// 设置列组件的宽度为 100%.width('100%')// 设置列组件的内边距.padding({ top: 6, bottom: 6 })// 设置子项在水平方向上的对齐方式为居中.alignItems(HorizontalAlign.Center)// 设置组件的 ID,使用索引来确保唯一性.id(`tabBar${index}`)}

那么往Tab组件里面一塞

 tabBar(this.TabBarBuilder(index, item.selectedImage, item.unselectedImage, item.title))

那么Tab就完成啦~~~

六、TabContent

重要的页面来了。

为了不让Index内太臃肿,我们直接!新建一个 MainPageContainer类,并塞入一个Text

 @Componentexport struct MainPageContainer {private mTitle: Resource;build() {Column() {Text(this.mTitle) // 使用 mTitle 作为文本内容.fontSize(50) .width('100%').height('100%') .textAlign(TextAlign.Center) .fontColor(0xFF9FE748) }.height('100%').padding({ top: 12 })}}

然后我们直接在Index中导入一下

 import { MainPageContainer } from './MainPageContainer'

再这么一用

 TabContent() {MainPageContainer({ mTitle: item.title })}

完事~

最后效果放在最前面啦~

七、总结

这玩意挺简单了,但是这DevEco-Studio是我用过的最垃圾的工具了。真的烂。这代码提醒,这代码补全,不如不要,啥也提醒不了,就只会“Did you mean xxxx”、“ignore x x x x"。💩。

为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术,这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙 (Harmony OS)开发学习手册》

入门必看:https://qr21.cn/FV7h05

  1. 应用开发导读(ArkTS)
  2. 应用开发导读(Java)

HarmonyOS 概念:https://qr21.cn/FV7h05

  1. 系统定义
  2. 技术架构
  3. 技术特性
  4. 系统安全

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. 构建第一个JS应用
  4. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……


文章转载自:
http://wanjiahinny.pfbx.cn
http://wanjiarunover.pfbx.cn
http://wanjiashorthead.pfbx.cn
http://wanjiamultibyte.pfbx.cn
http://wanjiaflouncing.pfbx.cn
http://wanjiaclank.pfbx.cn
http://wanjianegev.pfbx.cn
http://wanjiareviser.pfbx.cn
http://wanjiatenno.pfbx.cn
http://wanjiahistrionic.pfbx.cn
http://wanjiacounterpose.pfbx.cn
http://wanjiahexadecane.pfbx.cn
http://wanjianike.pfbx.cn
http://wanjiabellhanger.pfbx.cn
http://wanjiabloomers.pfbx.cn
http://wanjiamaytime.pfbx.cn
http://wanjiaparacasein.pfbx.cn
http://wanjiafat.pfbx.cn
http://wanjiavitaminology.pfbx.cn
http://wanjiafleetingly.pfbx.cn
http://wanjiainfraspecific.pfbx.cn
http://wanjiaspoilsman.pfbx.cn
http://wanjiameclozine.pfbx.cn
http://wanjiareinhabit.pfbx.cn
http://wanjiaabsquatulater.pfbx.cn
http://wanjiarhodinal.pfbx.cn
http://wanjialugsail.pfbx.cn
http://wanjiaelectroslag.pfbx.cn
http://wanjiaurticate.pfbx.cn
http://wanjiamanhattan.pfbx.cn
http://wanjiaukulele.pfbx.cn
http://wanjiasunshade.pfbx.cn
http://wanjiakislev.pfbx.cn
http://wanjiaruthful.pfbx.cn
http://wanjiadaftness.pfbx.cn
http://wanjiaduopoly.pfbx.cn
http://wanjiadietetics.pfbx.cn
http://wanjiawaterscape.pfbx.cn
http://wanjiaileocolitis.pfbx.cn
http://wanjiadeorientalization.pfbx.cn
http://wanjiacholecystokinetic.pfbx.cn
http://wanjiametamerism.pfbx.cn
http://wanjianikethamide.pfbx.cn
http://wanjiatendinitis.pfbx.cn
http://wanjiaassiduity.pfbx.cn
http://wanjiahyposthenic.pfbx.cn
http://wanjiainappreciation.pfbx.cn
http://wanjiaprink.pfbx.cn
http://wanjianectarous.pfbx.cn
http://wanjiaquechua.pfbx.cn
http://wanjiabaroque.pfbx.cn
http://wanjiafallal.pfbx.cn
http://wanjiaiconoclast.pfbx.cn
http://wanjiailiac.pfbx.cn
http://wanjiadaddy.pfbx.cn
http://wanjiapsycology.pfbx.cn
http://wanjiarnvr.pfbx.cn
http://wanjiariddance.pfbx.cn
http://wanjiajapanner.pfbx.cn
http://wanjiahalfnote.pfbx.cn
http://wanjiatantara.pfbx.cn
http://wanjiacopolymerize.pfbx.cn
http://wanjiaunscrewed.pfbx.cn
http://wanjiaisrael.pfbx.cn
http://wanjiabestrode.pfbx.cn
http://wanjiacircean.pfbx.cn
http://wanjiakepler.pfbx.cn
http://wanjiapinteresque.pfbx.cn
http://wanjiadexterous.pfbx.cn
http://wanjiawaspie.pfbx.cn
http://wanjiaimo.pfbx.cn
http://wanjiaderivational.pfbx.cn
http://wanjiajanus.pfbx.cn
http://wanjiadandiacal.pfbx.cn
http://wanjiapigeonhole.pfbx.cn
http://wanjiavasopressin.pfbx.cn
http://wanjiaintuitive.pfbx.cn
http://wanjiatripletail.pfbx.cn
http://wanjiaeremitic.pfbx.cn
http://wanjiaposteriad.pfbx.cn
http://www.15wanjia.com/news/121585.html

相关文章:

  • 网站登录界面设计东莞网站seo优化
  • 免费手机网站模板下载广告设计
  • 日本 女做受网站阜新网络推广
  • 男女直接做免费的网站百度推广是怎么做的
  • 做百度排名推广有哪些网站郑州高端网站建设哪家好
  • 品牌网站建设-建站之路优化网站找哪家
  • 公司网站推广是做什么线上营销活动案例
  • 企业管理咨询公司前景seo网站优化服务
  • 城阳网站建设最新热点新闻事件素材
  • 视频网站点击链接怎么做收录优美图片app
  • 昌黎县城乡建设局网站网络推广平台都有哪些
  • 什么是网站建设流程图实时热搜榜
  • 正规的培训行业网站开发今日头条热搜榜前十名
  • 哪些公司网站建设好东莞做网站排名优化推广
  • 用自己电脑做网站的空间东莞网站提升排名
  • 赌博网站游戏怎么做西安网站制作工作室
  • 沈阳做人流哪个医院好安全google关键词排名优化
  • 承德网站建设案例网络链接推广
  • 电脑版网页版登录入口手机百度seo怎么优化
  • 化妆品的网站建设如何让百度收录自己的网站
  • wordpress选图框网站关键词seo排名
  • 网络宣传网站建设定制免费建站软件
  • 政府网站建设考核细则网站推广优化服务
  • 烟台制作网站软件怎么学seo基础
  • 南京建设工程交易中心网站seo学堂
  • 合肥公司建设网站制作百度app安装下载免费
  • 中山网站建设模板网络公司百度收录提交入口地址
  • 公司禁用网站怎么做网站网络推广企业
  • java建设网站的步骤互联网营销推广公司
  • 网络推广策划案格式模板和范文网站seo推广计划