openHarmony系统组件学习

简介: openHarmony系统应用开发的组件很多,本篇文章仅以一个例子作为一个通用的学习方法,如果之前学过安卓开发,这部分内容应该除了语言,其他没有任何难度,本篇文章参考官网实现一个dialog组件,开始了~~

一、前言

openHarmony系统应用开发的组件很多,本篇文章仅以一个例子作为一个通用的学习方法,如果之前学过安卓开发,这部分内容应该除了语言,其他没有任何难度,本篇文章参考官网实现一个dialog组件,开始了~~

二、构建所需步骤

构建一个界面需要的基本步骤,openHarmony由于采用js语言,所以动画渲染方面可以直接引用css文件,然后具体界面和逻辑控制方面是和安卓开发无异

  • 页面设计的hml
  • 页面渲染的css
  • 逻辑控制的js

当然以上三个步骤只是基本的步骤,目前也可以引入其他语言进行开发,这部分就不介绍了,在学习dialog步骤之前先声明一下以下会用到的属性和方法

1. 属性

除支持通用属性,外弹窗类组件不支持focusable、click-effect属性,支持如下属性:

名称 类型 默认值 必填 描述
dragable7+ boolean false 设置对话框是否支持拖拽。

2.样式

仅支持通用样式中的width、height、margin、margin-[left|top|right|bottom]、margin-[start|end]样式。

3.事件

不支持通用事件,仅支持如下事件:

名称 参数 描述
cancel - 用户点击非dialog区域触发取消弹窗时触发的事件。
show7+ - 对话框弹出时触发该事件。
close7+ - 对话框关闭时触发该事件。

4.方法

不支持通用方法,仅支持如下方法。 dialog属性、样式均不支持动态更新

名称 参数 描述
show - 弹出对话框。
close - 关闭对话框。

上述出现的类似show7+指的是api至少7以上,通用的属性方法等等类似安卓开发中的基类属性

三、页面设计

页面设计时需要自行进行各个组件或者子组件的声明,这一点和安卓开发没有区别

<!-- dialog.hml -->
<div class="doc-page">
<!-- 按钮的声明-->
    <div class="btn-div">
        <button type="capsule" value="开始体验dialog" class="btn" onclick="showDialog"></button>
    </div>

<!--dialog的声明 -->
    <dialog id="simpledialog" dragable="true" class="dialog-main" oncancel="cancelDialog">
        <div class="dialog-div">
        <!-- 点击dialog文本的事件-->
            <div class="inner-txt">
                <text class="txt" ondoubleclick="doubleclick">我的dialog</text>
            </div>

        <!-- 具体点击的两种按钮的事件-->
            <div class="inner-btn">
                <button type="capsule" value="取消" onclick="cancelSchedule" class="btn-txt"></button>
                <button type="capsule" value="确认" onclick="setSchedule" class="btn-txt"></button>
            </div>
        </div>
    </dialog>
</div>

四、页面渲染

界面渲染,这部分由css完成界面的渲染,属性差不多,只是需要记忆一些常用的属性

/* dialog.css */

/*整体渲染*/
.doc-page {
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

/*按钮的整体设置*/
.btn-div {
  width: 100%;
  height: 200px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

/*各个子部件的设置*/
.btn {
  background-color: #F2F2F2;
  text-color: #0D81F2;
}
.txt {
  color: #000000;
  font-weight: bold;
  font-size: 39px;
}

/*dialog的整体设置*/
.dialog-main {
  width: 500px;
}
.dialog-div {
  flex-direction: column;
  align-items: center;
}

/*内部各种子部件的设置*/
.inner-txt {
  width: 400px;
  height: 160px;
  flex-direction: column;
  align-items: center;
  justify-content: space-around;
}
.inner-btn {
  width: 400px;
  height: 120px;
  justify-content: space-around;
  align-items: center;
}
.btn-txt {
  background-color: #F2F2F2;
  text-color: #0D81F2;
}

五、逻辑控制

这部分除了语法方面的,上手还是比较容易的,写法也差不多,涉及的各个属性就不一一进行说明了,注释写了部分的用法,其他用法可以去官网进行系统性的学习

// dialog.js
import prompt from '@system.prompt';
export default {
    //按钮的点击事件
    showDialog(e) {
        this.$element('simpledialog').show()
    },
    
    //触碰非dialog区域进行取消的逻辑
    cancelDialog(e) {
        prompt.showToast({
            message: 'Dialog cancelled'
        })
    },
    
    //取消事件的处理逻辑
    cancelSchedule(e) {
        this.$element('simpledialog').close()
        prompt.showToast({
            message: '取消成功'
        })
    },
    
    //确认事件的处理逻辑
    setSchedule(e) {
        this.$element('simpledialog').close()
        prompt.showToast({
            message: '确认成功'
        })
    },
    
    //双击的处理逻辑
    doubleclick(e){
        prompt.showToast({
            message: '双击了dialog'
        })
    }
}

六、总结

总体来讲还算比较容易地,如果是js和css学的比较好的还可以弄出更多花样,以上内容以一个组件学习的例子阐述了一般的开发流程,具体请参考官方文档进行学习,附上界面截图,我们下一篇见

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

目录
相关文章
|
机器学习/深度学习 监控 算法
吸烟行为检测系统(Python+YOLOv5深度学习模型+清新界面)
吸烟行为检测系统(Python+YOLOv5深度学习模型+清新界面)
2081 0
吸烟行为检测系统(Python+YOLOv5深度学习模型+清新界面)
|
网络性能优化 调度 网络虚拟化
配置HQoS示例
HQoS简介 HQoS通过多级队列进一步细化区分业务流量,对多个用户、多种业务等传输对象进行统一管理和分层调度,在现有的硬件环境下使设备具备内部资源的控制策略,既能够为高级用户提供质量保证,又能够从整体上节约网络建设成本。 交换机的HQoS主要通过流队列和用户队列实现。
377 7
|
8月前
|
Windows
最新AE2025下载安装教程!Adobe After Effects 2025(简称AE2025)下载
Adobe After Effects 2025 是一款专业视频特效制作软件,适用于 Windows 10/11 系统,大小为 4.17GB。提供夸克网盘下载链接,并附详细安装教程,包括解压安装包、管理员运行安装程序、自定义安装路径等步骤。温馨提示:安装前请关闭杀毒软件,避免激活文件被拦截。
3478 2
|
12月前
|
移动开发 JavaScript Java
开发体育赛事平台:专家预测系统功能模块解析与技术实现全方案
专家预测系统是体育直播平台的核心商业化功能之一,该系统支持用户申请成为专家,经审核后可发布赛事预测内容,其他用户需付费查看,平台抽取分成。系统包含专家认证、内容发布、付费阅读、数据统计等功能模块,并通过MySQL数据库管理用户、文章及购买记录等信息。技术实现涵盖PHP后端(ThinkPHP框架)、Java Android客户端与Vue.js H5移动端,提供完整的预测发布、付费机制与胜率收益统计解决方案。
|
开发者 索引
HarmonyOS使用系统图标
HarmonyOS图标符号是系统内置的图标资源库,开发者可通过SymbolGlyph和SymbolSpan组件高效引用图标资源,简化开发流程并确保应用与系统设计风格一致。通过`$r(&#39;sys.symbol.resource_name&#39;)`访问系统图标资源,支持调整大小、颜色、粗细、渲染策略及动效。更多示例和学习资料详见官方文档和教程。
870 2
HarmonyOS使用系统图标
|
人工智能 自然语言处理 搜索推荐
现在最火的AI是怎么应用到体育行业的
AI在体育行业的应用日益广泛,涵盖数据分析、伤病预防、观众体验、裁判辅助等多个领域。通过传感器和可穿戴设备,AI分析运动员表现,提供个性化训练建议;预测伤病风险,制定康复方案;优化比赛预测和博彩指数;提升观众的个性化内容推荐和沉浸式观赛体验;辅助裁判判罚,提高准确性;发掘青训人才,优化训练计划;智能管理场馆运营和票务;自动生成媒体内容,提供实时翻译;支持电竞分析和虚拟体育赛事;并为运动员提供个性化营养和健康管理方案。未来,随着技术进步,AI的应用将更加深入和多样化。
|
存储 人工智能 安全
设计思考实战案例:爆款产品“智慧一体机”诞生记
本文以E公司E01系列智慧一体机的研发为案例,探讨设计思考方法在产品创新中的应用。通过深入了解用户需求、创意发想、原型制作及测试优化,E公司成功打造出集AI与物联网技术于一体的爆款产品,提升会议与办公效率,广受好评。案例展示了以人为本的设计理念如何助力企业实现技术创新与市场突破,强调多学科协作、持续迭代的重要性,为企业提供创新借鉴。真创新,不平凡!
440 0
|
监控 前端开发 Java
Java SpringBoot –性能分析与调优
Java SpringBoot –性能分析与调优
|
小程序 Java 关系型数据库
微信记账小程序
微信记账小程序
949 0