初体验鸿蒙 HarmonyOS NEXT开发

  上个星期三就下载了鸿蒙 HarmonyOS NEXT,安装好了后测试了一下,感觉界面和功能设计与IntelliJ IDEA很像,对初学者非常友好,所见即所得。不知道什么原因,写了代码后测试起来很慢,简单测试后就没有再动。

  今天下午卸载了原来的安装,重新安装后结果还是慢,做了一个简单的小应用页面。

  1、鸿蒙 HarmonyOS NEXT很强大,以前开发手机应用很多人使用HBuilderX,现在有了新的选择。

  2、开发语言是ArkTS,是TS的超集,所以有JavaScript编程经验的上手会很快。

  3、DevEco Studio的下载地址:所有工具 - 下载中心 - 华为开发者联盟 (huawei.com)

  4、安装很简单,安装完成占用空间很大,建议放到其他盘,操作习惯与VSCode、IntelliJ IDEA差不多。安装完成后启动DevEco Studio最好做一下诊断。

  前面四项必须是完成状态。

  5、开发测试必须要先安装手机设备。

  文件很大,下载耗用时间比较长。

  6、编写代码和测试就简单了,所见即所得。

  主页面index.ets:

import HeaderInfo from '../mynote/HeaderInfo'
import ListItemInfo from '../mynote/ListItemInfo'
import font from '@ohos.font'@Entry
@Component
struct Index {@State selectedTabIndex:number=0@Builder myTabBar(selectedTabIndex:number, title:string,icon:string){Column(){Text(icon).fontFamily('myfont').fontSize(20).fontColor(selectedTabIndex==this.selectedTabIndex?Color.Red:Color.Gray)Text(title).fontSize(16).fontColor(selectedTabIndex==this.selectedTabIndex?Color.Red:Color.Gray)}}aboutToAppear(): void {//注册字体font.registerFont({familyName:'myfont',familySrc:'/iconfont/iconfont.ttf'})}build() {RelativeContainer(){Tabs({barPosition:BarPosition.End}){TabContent(){Column(){//头部HeaderInfo()//中间List(){ForEach(Array.from({length:30}),()=>{ListItem(){ListItemInfo()}})}.width('100%').layoutWeight(1).backgroundColor('#e9e9e9').listDirection(Axis.Vertical)   //调整主轴方向.lanes(1,20)    //调整列数和间距.alignListItem(ListItemAlign.Start)    //列的居中.scrollBar(BarState.Auto)   //滚动条是否显示.divider({strokeWidth:1,  //分割线宽color:Color.Grey,   //分割线颜色startMargin:5,  //分割线距离左边的距离endMargin:5 //分割线距离右边的距离})}.width('100%').height('100%').padding({left:10,right:10})}.tabBar(this.myTabBar(0,'首页','\ue663'))TabContent(){//查找页面}.tabBar(this.myTabBar(1,'查找','\ue642'))TabContent(){//新建页面}.tabBar(this.myTabBar(2,'新建','\ue600'))TabContent(){//统计页面}.tabBar(this.myTabBar(3,'统计','\ue878'))TabContent(){//设置页面}.tabBar(this.myTabBar(4,'设置','\ue627'))}.animationDuration(300).scrollable(true).vertical(false).onChange((Index:number)=>{this.selectedTabIndex=Index})}}
}

  头部文件Headerinfo.ets:

@Extend(Button)
function  BtnStyle(Selected:boolean){.fontSize(12).padding({left:3,right:3}).width(48).height(24).fontColor(Selected?'#333':'#9e9e9e').backgroundColor(Selected?'#fff':'#f9f9f9').border({width:1,color:Selected?'#CCC':'#e9e9e9'})
}@Component
struct HeaderInfo {@State isSelected:boolean=truebuild() {Row(){Text('待办事项').fontSize(24).fontWeight(FontWeight.Bold).padding(5)Row({space:6}){Button('列表',{stateEffect:false}).BtnStyle(this.isSelected).onClick(()=>this.isSelected=!this.isSelected)Button('卡片',{stateEffect:false}).BtnStyle(!this.isSelected).onClick(()=>this.isSelected=!this.isSelected)}}.width('100%').justifyContent(FlexAlign.SpaceBetween).padding(6)}
}export default HeaderInfo

  ListItemInfo文件:

@Component
struct ListItemInfo {build() {Column(){Row(){//分类图标、创建日期、重要等级Text('\ue613').fontFamily('myfont').fontSize(16).fontColor(Color.Red)Text('2024-10-30').fontSize(12).fontColor(Color.Gray).margin({top:10,left:10})Text('\ue604').fontFamily('myfont').fontSize(16).fontColor(Color.Orange)}.width('100%')//描述内容Text('查看特定端口号被占用的PID').fontSize(12).fontColor(Color.Black).margin({left:10,bottom:10}).width('100%')//是否完成、完成日期、删除Row(){Row(){Text('\ue6d4').fontFamily('myfont').fontSize(16).fontColor(Color.Brown)Text('完成的时间').fontSize(9).fontColor(Color.Gray)}Image($r('app.media.startIcon')).width(18).aspectRatio(1).margin({top:10}).borderRadius(15)}.width('100%').justifyContent(FlexAlign.SpaceBetween)}.width('100%')}
}export default ListItemInfo

  上面只是简单使用了DevEco Studio,后面需要将这个小应用完善一下。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《DIY项目之“一只眼狗链”》:视频方案

项目背景 《DIY项目之“一只眼狗链”》合集主要记录完成一个DIY项目的所有过程。该合集预计更新频率为2~3周一篇(同样属于一边做一边记录发布,时间上主要涉及PCB绘板、零部件采购、样品制作、编程等,存在一定的不可控性)。 当前项…

Date工具类详细汇总-Date日期相关方法

# 1024程序员节 | 征文 # 目录 简介 Date工具类单元测试 Date工具类 简介 本文章是个人总结实际工作中常用到的Date工具类,主要包含Java-jdk8以下版本的Date相关使用方法,可以方便的在工作中灵活的应用,在个人工作期间频繁使用这些时间的格…

WPF拖拽交互全攻略及实现自定义拖拽控件及数据交换技巧解析

目录 1. 基本概念2 . 实现拖拽功能概述需要要实现基本的拖放,完成以下任务:其他操作 示例3.1 设置拖拽源,拖拽开始3.2 设置拖拽效果DragDropEffects 3.3 设置放置目标,处理拖拽数据拖拽输入DragEnter事件DragOver事件拖拽离开Drag…

ubuntu 22.04网线连接无ip、网络设置无有线网界面(netplan修复)

目前遇到过树莓派和其他设备安装 ubuntu22.04, 使用有线网络一段时间(可能有其他软件安装导致)造成有线网络未启动无ip分配的问题。 1、动态分配 通过命令行启动dhcpclient实现 网络eth0存在异常,网口灯电源和信号灯均点亮&am…

开关灯问题(c语言)

样例&#xff1a;10 10 &#xff0c;输出&#xff1a;1&#xff0c;4&#xff0c;9 5 5 &#xff0c;输出&#xff1a;1&#xff0c;4 代码如下 #include<stdio.h> //引入bool值的概念 #include<stdbool.h> int main() {int n 0;//n为灯的数量int m 0;…

【Android14 ShellTransitions】(八)播放动画

书接上回&#xff0c;话说当WMCore部分走到了Transition.onTransactionReady&#xff0c;计算完参与动画的目标&#xff0c;构建出TransitionInfo后&#xff0c;接下来就把这个包含了动画参与者的TransitionInfo发给了WMShell&#xff0c;然后就该播放动画了&#xff0c;这部分…

git快速合并代码dev->master

需求&#xff1a; 日常开发都是在dev分支进行开发&#xff0c;但是dev代码开发测试完成后&#xff0c;需要将dev代码合到master主分支上 开始合并代码&#xff1a; 一、场景 一个代码仓库&#xff0c;包含两个分支&#xff0c;一个是master&#xff0c;另一个是dev&#xff1b…

gitblit 学习-hook功能

hook功能 hook是什么 git hooks是git提供的&#xff0c;在发生特定事件时&#xff0c;允许用户添加自定义代码&#xff08;或操作&#xff09;的方式。 就像Vue中组件的生命周期钩子&#xff0c;比如&#xff0c;你想在vue组件创建后输出一行log, 你可能会这么写 有什么用&a…

Android Input的流程和原理

Android Input事件机制 Android系统是由事件驱动的&#xff0c;而Input是最常见的事件之一&#xff0c;用户的点击、滑动、长按等操作&#xff0c;都属于Input事件驱动&#xff0c;其中的核心就是InputReader和InputDispatcher。InputReader和InputDispatcher是跑在system_serv…

Jmeter基础篇(19)JSR223预处理器

前言 JSR223预处理器是Apache JMeter中的一个组件&#xff0c;它允许用户使用任何支持Java Scripting API (JSR 223) 的脚本语言来执行预处理任务。这个功能非常强大&#xff0c;因为它让测试人员能够利用如Groovy、JavaScript&#xff08;Nashorn引擎&#xff09;、BeanShell…

轻松实现金蝶与旺店通数据无缝对接的完整解决方案

【金蝶】采购入库单对接【旺店通】委外入库单_合并 在企业信息化系统中&#xff0c;数据的高效流转和准确对接是确保业务顺畅运行的关键。本文将分享一个实际案例&#xff0c;展示如何通过轻易云数据集成平台实现金蝶云星空与旺店通企业奇门之间的数据无缝对接。具体方案为&am…

基于SpringBoot的汽车票网上预订系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

前端好用的网站分享——CSS(持续更新中)

1.CSS Scan 点击进入CSS Scan CSS盒子阴影大全 2.渐变背景 点击进入color.oulu 3.CSS简化压缩 点击进入toptal 4.CSS可视化 点击进入CSS可视化 这个强推&#xff0c;话不多说&#xff0c;看图! 5.Marko 点击进入Marko 有很多按钮样式 6.getwaves 点击进入getwaves 生…

【K8S系列】Kubernetes 中 Service IP 分配 问题及解决方案【已解决】

在 Kubernetes 中&#xff0c;LoadBalancer 类型的 Service 允许用户轻松地将应用暴露给外部流量。它自动创建一个云负载均衡器并分配一个外部 IP 地址。然而&#xff0c;在某些情况下&#xff0c;LoadBalancer 类型的 Service 可能未能成功分配 IP 地址&#xff0c;导致外部无…

Tomcat servlet response关于中文乱码的经验

前言 最近修改老项目项目&#xff0c;使用zuul网关返回的中文内容乱码了&#xff0c;如果使用GBK或者GB2312编码确正常显示&#xff0c;稍微实验了一下&#xff0c;发现里面很多细节&#xff0c;毕竟Springboot对我们做了很多事情&#xff0c;而且当我们使用不同的模式会出现很…

微服务之间调用,OpenFeign传递用户(RequestInterceptor接口)

场景&#xff1a;微服务之黑马商城项目-登录拦截器在网关完成用户的校验&#xff0c;并将用户信息&#xff08;用户id&#xff09;存入请求头&#xff0c;假设将购物车里面的商品进行结算就会生成订单并清空购物车&#xff0c;这里涉及到了交易服务模块远程调用购物车模块&…

Java中String的length与Oracle数据库中VARCHAR2实际存储长度不一致的问题

目录 一、根本原因 二、解决方案 一、根本原因 Oracle数据库新增数据的时候报如下错误&#xff1a; 先给大家看个小案例&#xff0c;这样更好去理解&#xff0c;下面是一段测试代码&#xff1a; 这里面我分别列举了三种字符串&#xff0c;中文&#xff0c;英文和数字以及两种…

探索 CrewAI:引领多智能体协作的未来

探索 CrewAI&#xff1a;引领多智能体协作的未来 在人工智能领域&#xff0c;如何让多个智能体协同工作以解决复杂问题一直是一个热门话题。CrewAI 作为一个前沿的框架&#xff0c;正是为了解决这一挑战而生。它通过角色扮演和自主智能体的协作&#xff0c;赋予了智能体无缝合…

ViSual studio如何安装 并使用GeographicLib

在C的 Boost.Geometry、GDAL/OGR 和 GeographicLib。这些库都可以用于计算两个经纬度点之间的地面距离。 . Boost.Geometry 描述&#xff1a;Boost库的一部分&#xff0c;提供了几何计算功能&#xff0c;包括计算两点之间的地面距离。 优势&#xff1a;轻量级、易于集成到C项…

网站攻击,XSS攻击的类型

XSS&#xff08;跨站脚本&#xff09;攻击是一种网络安全攻击方式&#xff0c;攻击者通过在网站页面中注入恶意脚本&#xff0c;使脚本在其他用户的浏览器中执行&#xff0c;从而窃取用户信息、篡改页面内容或操控用户账户。这类攻击通常利用网站对输入数据的过滤不严格&#x…