开发文档代码示例工程Dialog的完全解析

开发 前端
ToastDialog是在窗口上方弹出的对话框,是通知操作的简单反馈。ToastDialog会在一段时间后消失,在此期间,用户还可以操作当前窗口的其他组件。

[[415358]]

 想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

本文引言

学习编程,就应该用代码筑基,拿项目盖楼!最近学习《鸿蒙操作系统开发入门经典》,边写边敲示例代码,提升明显。但总觉得例子化的代码还是差了点东西,遂根据官方提供的代码示例工程进行学习和解析,和尽力二创。

开发文档-代码示例工程

一、概述

ToastDialog是在窗口上方弹出的对话框,是通知操作的简单反馈。ToastDialog会在一段时间后消失,在此期间,用户还可以操作当前窗口的其他组件。

而基于CommonDialog我们们可以封装更多的弹框。

帮大家翻译一下:

二、工程演示

吐槽!原示例工程的按钮和字体巨小!!!!眼睛都无了!我把字调大了。

进入HAP

显而易见有四个按钮,即有四种反馈!

  • common dialog:一般的信息反馈对话框
  • list dialog:列表对话框
  • multiselect dialog:对选对话框
  • custom dialog:自定义对话框

  • common dialog

  • list dialog

  • multiselect dialog

  • custom dialog

三、工程项目解析

框架解析

四、Layout布局解析

main_ability_slice

  • 主页面
  • 布局:DirectionalLayout-方向布局(vertical竖直排列)
  • 组件与页面对应:

custom_dialog_content

  • 自定义页面
  • 布局:最外层DirectionalLayout方向布局—Text组件—内层包含六个TextField组件的DirectionalLayout—Button组件
  • 注解:

  • 组件与页面对应:

五、graphic文件解析

此文件下的都是以xml形式(svg会被编译器转为xml)的背景设置。在layout文件下的xml进行背景设置,如下:

为演示方便。把所有集合到一个xml进行注解。

六、MainAbility解析

关键点:

  • 回调函数onStart。读者如果对生命周期函数不是很懂建议点击链接读下文:

开发文档——Page Ability生命周期

  • setMainRoute配置默认展示的AbilitySlice

七、utils下的LogUtil解析

此文件是基于HiLog日志模块的打印日志文件。

具体如何打印和如何注意事项不归属本文重点,可以参照下文

开发文档—HiLog

八、MainAbilitySlice解析

声明

关于设置页面的不赘述直接进入自定义函数initComponents()的解析:

关于几个show的解析

  • 基本都是字面意思
  • 关键在于几个关键功能的实现如单选、多选需要大家多熟悉

自定义弹框

九、custom文件的解析

难点在于TextField的应用,而不是CustomDialog了哈哈哈。

  1. //通过addTextObserver实现从start到count输入框的跳转 
  2. private void setObserver(TextField textField, Component textFieldNext) { 
  3.     textField.addTextObserver((string, start, before, count) -> matchNumber(string, textField, textFieldNext)); 
  4.  
  5. private void matchNumber(String string, TextField textField, Component textFieldNext) { 
  6.     boolean isMatch = Pattern.matches(PATTERN, string); 
  7.     if (isMatch) { 
  8.         textField.setText(string); 
  9.     } 
  10.     if (textFieldNext != null) { 
  11.         textFieldNext.requestFocus(); 
  12.     } 

本文总结

  • 每日一更!不能断更!!!!哈哈哈哈保持学习。
  • 对于代码示例工程提一点建议:布局中的text的值并没有用element中的string.json存储。致使代码不规范
  • 代码已经格式化放心食用
  • 对于ListDialog、CommonDialog、自定义弹窗有了一个基本演示和解析,但其完整API如下;

其中DisplayDialog很有意思:

 想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

 

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2021-08-16 14:42:28

鸿蒙HarmonyOS应用

2023-09-15 14:29:57

Android开发语言

2012-08-10 10:02:21

PHP

2021-08-12 10:02:08

鸿蒙HarmonyOS应用

2009-12-24 13:51:49

WPF文档打印

2013-06-04 17:23:55

Android开发移动开发Fragment

2010-03-15 09:41:50

Windows 8开发文档

2010-12-09 08:39:43

Android 2.3

2021-07-27 11:39:40

鸿蒙HarmonyOS应用

2011-08-12 14:39:00

iPhoneSDK

2009-12-07 15:41:51

PHP图片加水印

2010-02-24 13:38:18

WCF PreCal模

2021-07-19 10:10:25

鸿蒙HarmonyOS应用

2011-08-12 11:22:53

Oracle存储过程Java

2009-12-02 10:49:59

PHP解析XML元素结

2009-12-18 16:00:29

Ruby获取当前类名

2011-08-10 19:01:18

Objective-C

2023-05-15 15:33:35

ArkTS开发文档

2010-02-22 15:06:31

WCF信道监听器

2010-03-22 17:53:50

Python字符Python字符串
点赞
收藏

51CTO技术栈公众号