蠃鱼-开发文档代码示例工程Dialog的完全解析 原创 精华

Der_带鱼
发布于 2021-7-27 23:27
浏览
2收藏

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

本文引言

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

开发文档-代码示例工程

一、概述

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

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

  • 帮大家翻译一下:

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

二、工程演示

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

  • 进入HAP
    • 显而易见有四个按钮,即有四种反馈!
      • common dialog:一般的信息反馈对话框
      • list dialog:列表对话框
      • multiselect dialog:对选对话框
      • custom dialog:自定义对话框

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

  • common dialog
    蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

  • list dialog

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

  • multiselect dialog

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

  • custom dialog

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

三、工程项目解析

  • 框架解析

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

四、Layout布局解析

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

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

  • custom_dialog_content

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

    蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

    • 组件与页面对应:

    蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

五、graphic文件解析

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

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

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

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

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

六、MainAbility解析

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

七、utils下的LogUtil解析

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

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

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

开发文档—HiLog

八、MainAbilitySlice解析

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

  • 声明

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

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

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

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

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

  • 自定义弹框

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

九、custom文件的解析

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

  • 难点在于TextField的应用,而不是CustomDialog了哈哈哈。
//通过addTextObserver实现从start到count输入框的跳转
private void setObserver(TextField textField, Component textFieldNext) {
    textField.addTextObserver((string, start, before, count) -> matchNumber(string, textField, textFieldNext));
}

private void matchNumber(String string, TextField textField, Component textFieldNext) {
    boolean isMatch = Pattern.matches(PATTERN, string);
    if (isMatch) {
        textField.setText(string);
    }
    if (textFieldNext != null) {
        textFieldNext.requestFocus();
    }
}

本文总结

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

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

  • 其中DisplayDialog很有意思:

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

蠃鱼-开发文档代码示例工程Dialog的完全解析-鸿蒙开发者社区

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
5
收藏 2
回复
举报
2条回复
按时间正序
/
按时间倒序
XY道衍
XY道衍

这个官方demo的ui是真难看

回复
2021-7-28 09:14:29
Anzia
Anzia 回复了 XY道衍
这个官方demo的ui是真难看

hhh,因为Java实现功能就行,做UI就难受了

回复
2021-7-28 21:34:45
回复
    相关推荐