快速开发一个鸿蒙的页面

文章目录

  • 前言
  • 常用组件
  • 快速开启简单的鸿蒙页面
  • 总结
一、前言

鸿蒙要想快速上手,那么就需要对基础的组件使用比较熟悉,这里就罗列开发中常见的基础组件的使用。

只要是写android的,对于这些组件的使用还是能很快上手的,只要多多练习。

最后呢,这里会通过基础组件的使用,将他们放到页面中,这样有更直观的体验。

二、常用的基础组件
1、Image
     //图片组件Image($r('app.media.icon'))// Image($rawfile('test.png'))  //如果是rawFile 要加后缀名.width(50).height(50).borderRadius(10).interpolation(ImageInterpolation.High) //图片的插值效果(去掉锯齿是图片清晰).margin({bottom: 10}).onComplete(img =>{console.log("图片的宽度:" + img.width)}).onError(()=>{//图片加载报错,走这里})
2、Text
      //文本组件Text($r('app.string.register')).fontSize(20)  //字体大小.lineHeight(30) //行高.fontColor('#00f') //字体颜色.fontWeight(FontWeight.Medium)//字体粗细.margin({bottom: 10}).onClick(()=>{console.log('点击事件')})
3、TextInput
        //文本输入框TextInput({placeholder:'请输入用户名'}) //这里头是提示文本.width('80%').height(40).backgroundColor('#cdcdcd').margin({left: 10})//密码输入框TextInput({placeholder: '请输入密码'}).width('80%').height(40).backgroundColor('#cdcdcd').type(InputType.Password) //输入文本类型.showPasswordIcon(true) //是否显示密码icon.margin({bottom: 10}).onChange(val=>{console.log('输入的值为:' + val)}).margin({left: 10})
4、Slider
        //滑动进度条Slider({value: this.high,min: 150,max: 190,step:1, //这里代表步长style: SliderStyle.InSet, //滑动头的是在里面,还是在里面direction: Axis.Horizontal, //滑动条的方向。默认是横向reverse: false //进度往哪个方向,是否是反向。默认是往右}).width('70%').trackThickness(20) //滑轨的粗细.showTips(true) //是否显示进度条百分比.onChange(val =>{    //获取进度的值this.high = valconsole.log('进度长度:' + val)})Text(this.high.toString()).fontSize(20).fontWeight(FontWeight.Medium)
5、Select
		//下拉框组件Select([{ value: '深圳'},{ value: '广州'},{ value: '北京'},{ value: '上海'}]).selected(1)  //默认选择的城市.value('请选择城市') //提示文本.font({size:20, weight: FontWeight.Medium}).onSelect((index,value) =>{console.log('选择的城市:' + value)})
6、Checkbox
      Row(){Text('兴趣:').fontSize(20)//多选框群组CheckboxGroup({group: 'checkGroup'})//控制是否全选或者全不选.selectedColor('#f00').selectAll(true)  //默认是否全部选中,如果Checkbox 中的select 有值,那么子组件优先级高,这边就不生效.onChange((itemName: CheckboxGroupResult) =>{ //被选中的组件名及状态。全部选中的状态是0,全不选是2,有选中是1console.log('选中的框是:'+ itemName.name + ' 状态是:'+ itemName.status.toString())})Text('全选').fontSize(20)Checkbox({name: 'checkbox1', group: 'checkGroup'}).selectedColor('#f00')//选中的颜色.select(false) //这个优先级高于多选框群组的selectAll.onChange((value: Boolean) =>{console.log('checkbox1 是否选中:' + value)})Text('看书').fontSize(20)Checkbox({name: 'checkbox2', group: 'checkGroup'}).selectedColor('#f00')//选中的颜色.select(false).onChange((value: Boolean) =>{console.log('checkbox2 是否选中:' + value)})Text('跑步').fontSize(20)Checkbox({name: 'checkbox3', group: 'checkGroup'}).selectedColor('#f00')//选中的颜色.select(false).onChange((value: Boolean) =>{console.log('checkbox3 是否选中:' + value)})Text('钓鱼').fontSize(20)}.width('100%').margin({bottom:10})
7、Radio
      Row(){Text('性别:').fontSize(20)//单选框组件 (记得写多组,不然点击看不出效果)Radio({value: '男', group: 'sex'}).height(20).width(20).checked(true).onChange((isChecked: Boolean)=>{if (isChecked) {console.log('男生 是否选中:' + isChecked)}})Text('男').fontSize(20)Radio({value: '女', group: 'sex'}).height(20).width(20).checked(true).onChange((isChecked: Boolean)=>{if (isChecked) {console.log('女生 是否选中:' + isChecked)}})Text('女').fontSize(20)}.width('100%')
三、布局
1、Column
     //垂直方向布局容器Column({space:20}){ //组件间的间距Text('组件一').fontSize(20).fontColor('#00f').lineHeight(FontWeight.Medium)Text('组件二').fontSize(20).fontColor('#00f').lineHeight(FontWeight.Medium)}.backgroundColor('#f00').width('100%').height(100).justifyContent(FlexAlign.Center)//这里是column里面组件  主轴的布局方式。有居中,有放在开始,有放在结束等。.alignItems(HorizontalAlign.Start) //这里是column里面组件 交叉轴的布局方式。
2、Row
     //水平方向布局容器Row(){Text('组件一').fontSize(20).fontColor('#00f').lineHeight(FontWeight.Medium)Text('组件二').fontSize(20).fontColor('#00f').lineHeight(FontWeight.Medium)}.backgroundColor('#0f0').width('100%').height(50).justifyContent(FlexAlign.Center)//主轴的布局方式,这是是居中.alignItems(VerticalAlign.Top) //交叉轴的布局方式,这里是放在顶部Text('组件三').fontSize(20).fontColor('#00f').lineHeight(FontWeight.Medium).margin(20)
3、Stack
//堆叠布局,后面的组件会覆盖在前面的组件上面Stack(){Image($r('app.media.icon')).width(50).height(50)Text('hello world')//这个控件覆盖在image上面}.width('90%').border({radius: 20}).backgroundColor('#f00')
四、快速开启简单的鸿蒙页面

这是根据上面提到的组件和布局整理出来的,一个页面。下面是效果图。

在这里插入图片描述

最后呢,将我整理的这些组件都放到这个项目中,后面有新增,也会一并上传。开发中,某些api忘记了,可以重新拿出来看看。

以上代码地址:https://github.com/shenshizhong/ViewUseDemo

总结

1、罗列鸿蒙基础组件的使用
2、几个重要的布局组件的使用
3、快速撸一个简单的鸿蒙页面

如果对你有一点点帮助,那是值得高兴的事情。:)
我的csdn:http://blog.csdn.net/shenshizhong
我的简书:http://www.jianshu.com/u/345daf0211ad

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

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

相关文章

01-prometheus监控系统-安装部署prometheus

一、准备环境 主机名ip配置prometheus-server3110.0.0.311核1g-20GBprometheus-server3210.0.0.311核1g-20GBprometheus-server3310.0.0.311核1g-20GB 二、下载/上传软件包 1,软件包地址 这里给大家准备了百度云盘的安装包; 链接:https:/…

FRM模型十二:极值理论

目录 极值理论介绍GEVPOT 代码实现 极值理论介绍 在风险管理中,将事件分为高频高损、高频低损、低频高损、低频低损。其中低频高损是一种非常棘手的损失事件,常出现在市场大跌、金融体系崩溃、金融危机以及自然灾害等事件中。 由于很难给极端事件一个准…

Spring 学习记录

Spring 学习记录 1. Spring和SpringFrameWork1.1 广义的Spring2.1 狭义的Spring2.3 SpringFrameWork / Spring框架图 2. Spring IOC容器(即上图中的Core Container)2.1 相关概念 (IOC DI 容器 组件)2.2 Spring IOC容器的作用2.3 Spring IOC容器接口和具体实现类 3. Spring IOC …

flask 数据库迁移报错 Error: No such command ‘db‘.

初学FLASK,使用pycharm的terminal 启动,实现数据库迁移 文件结构 项目启动文件不在一级目录pycharm>terminal启动 由于自己初入 python flask 很多东西并不懂,只能依葫芦画瓢,使用如下命令,输入完第一行命令执行没有任何错误…

Vue ElementUI 修改消息提示框样式—messageBox 的大小

在窄屏模式下(移动端或pda),提示框的宽度太宽,会出现显示不完全的问题。 应当如何修改 ElementUI 的样式呢? open() {this.$confirm(window.vm.$i18n.t("tips.conLogOut"),window.vm.$i18n.t("tips.tip…

11-Linux部署集群准备

Linux部署集群准备 介绍 在前面,我们所学习安装的软件,都是以单机模式运行的。 后续,我们将要学习大数据相关的软件部署,所以后续我们所安装的软件服务,大多数都是以集群化(多台服务器共同工作&#xff…

【机器学习实战1】泰坦尼克号:灾难中的机器学习(一)数据预处理

🌸博主主页:釉色清风🌸文章专栏:机器学习实战🌸今日语录:不要一直责怪过去的自己,她曾经站在雾里也很迷茫。 🌼实战项目简介 本次项目是kaggle上的一个入门比赛 :Titani…

锚索测力计数据处理与分析:MCU自动测量单元的应用

锚索测力计作为一种重要的工程监测工具,在桥梁、大坝、隧道等结构物的健康监测中发挥着日益重要的作用。如何高效、准确地处理和分析,锚索测力计所获取的数据成为了工程师们面临的重要问题。近年来,随着微控制器(MCU)技术的快速发展&#xff…

51-n皇后(回溯算法)

题目 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一…

前端开发项目必备神器之node工具整理

前言: 在我们开发项目中,node是我们必备的工具,在为了适应各种不同的开发需求的同时,node也有很多好用的插件提供给我们,这里整理个人的使用分享给大家! 一、node相关 1、node官方网站,可以安装…

模拟算法题练习(二)(DNA序列修正、无尽的石头)

(一、DNA序列修正) 问题描述 在生物学中,DNA序列的相似性常被用来研究物种间的亲缘关系。现在我们有两条 DNA序列,每条序列由 A、C、G、T 四种字符组成,长度相同。但是现在我们记录的 DNA序列存在错误,为了…

ubuntu基础操作(1)-个人笔记

搜狗输入法Linux官网-首页搜狗输入法for linux—支持全拼、简拼、模糊音、云输入、皮肤、中英混输https://pinyin.sogou.com/linux 1.关闭sudo密码: 终端(ctrl alt t)输入 sudo visudo 打开visudo 找到 %sudo ALL(ALL:ALL) ALL 这一行…

羊大师分享,羊奶奶有哪些对健康有益的喝法?

羊大师分享,羊奶奶有哪些对健康有益的喝法? 羊奶奶有多种对健康有益的喝法,以下是一些建议: 直接饮用:将羊奶直接煮沸后饮用,可以保留羊奶中的营养成分,为身体提供全面的滋养。羊奶的丰富蛋白质…

代码随想录算法训练营第二十八天补|93.复原IP地址 ● 78.子集 ● 90.子集II

组合问题:集合内元素的组合,不同集合内元素的组合 分割问题:本质还是组合问题,注意一下如何分割字符串 回溯模板伪代码 void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素&#xf…

【六袆 - MySQL】MySQL 5.5及更高版本中,InnoDB是新表的默认存储引擎;

InnoDB 这是一个MySQL组件,结合了高性能和事务处理能力,以确保可靠性、健壮性和并发访问。它体现了ACID设计哲学。它作为一个存储引擎存在,处理使用ENGINEINNODB子句创建的或修改的表。请参阅第14章“InnoDB存储引擎”以获取有关架构细节和管…

【解决】虚幻导入FBX模型不是一个整体

问题: 现在有一个汽车的fbx模型,导入虚幻引擎,导入后变成了很多汽车零件模型。 解决: 把“合并网格体”勾选上,解决问题。

Unity 佳能SDK 及数据获取

1. 填写信息跟官方申请SDK,大概1-2个工作日会邮件回复你 佳能(中国)- 佳定制(佳能影像产品),SDK,EDSDK,CCAPI,软件开发包下载 2. 将SDK这两个文件放到 Unity Plugins文件夹 3. 把CameraControl 下面只要是绿色的 .cs 文件都复制到Unity 中

ElasticSearch搜索引擎使用指南

一、ES数据基础类型 1、数据类型 字符串 主要包括: text和keyword两种类型,keyword代表精确值不会参与分词,text类型的字符串会参与分词处理 数值 包括: long, integer, short, byte, double, float 布尔值 boolean 时间 date 数组 数组类型不…

基于ssm学生公寓管理系统的设计与开发论文

学生公寓管理系统的设计与实现 摘要 如今,科学技术的力量越来越强大,通过结合较为成熟的计算机技术,促进了学校、医疗、商城等许多行业领域的发展。为了顺应时代的变化,各行业结合互联网、人工智能等技术,纷纷开展了…

P1160 队列安排题解

题目 一个学校里老师要将班上N个同学排成一列,同学被编号为1∼N,他采取如下的方法: 先将1号同学安排进队列,这时队列中只有他一个人; 2∼N号同学依次入列,编号为i的同学入列方式为:老师指定编…