鸿蒙常用UI效果及一些处理方式总结

news2024/12/26 9:30:39

前言:

DevEco Studio版本:4.0.0.600

详细使用介绍

1、Text的一些常用设置

Text(this.message)
   .fontSize(50)//字体大小
   .fontColor(Color.White)//字体颜色
   .fontWeight(FontWeight.Bold)//字体加粗
   .backgroundColor(Color.Black)//背景颜色
   .fontStyle(FontStyle.Italic) //字体倾斜
   .textOverflow({overflow: TextOverflow.Ellipsis})//文本超长显示方式,TextOverflow.Ellipsis:以省略号结尾
   .maxLines(1)//设置文本的最大行数

TextOverflow属性

效果:

参考文档:OpenHarmony Text显示文本

2、Text文字富文本

Text() {
   Span("《用户协议》").fontColor(Color.Blue)
      .decoration({ type: TextDecorationType.Underline, color: Color.Blue })//设置文本装饰线样式及其颜色。
      .onClick(() => {
         //实现点击,跳转到用户协议界面
      })
}

效果:

参考文档:OpenHarmony span富文本设置

3、线性边框按钮

Text('确定')
   .fontColor(Color.Black)
   .fontSize('28px')
   .width('146px')
   .height('48px')
   .textAlign(TextAlign.Center)
   .borderColor(Color.Blue)//边框颜色
   .borderWidth('1px')//边框宽度
   .borderRadius('10px')//边框圆角
   .onClick(() => {
      //实现点击逻辑
   })

// 如果单独设置某一个圆角可以通过下面方式设置,topLeft:左上角,topRight:右上角,bottomLeft:左下角,bottomRight:右下角

.borderRadius({ topLeft: '10px', topRight: '10px', bottomLeft: '10px', bottomRight: '10px' })

效果:

4、Image的一些常用设置

参考链接:OpenHarmony Image图片

圆形图片:

Image($r("app.media.startIcon"))
   .width(100)
   .height(100)
   .clip(new Circle({ width: 100, height: 100 }))

图片占位:

Image($r("app.media.startIcon"))
   .width(100)
   .height(100)
   .alt($r("app.media.icon"))

图片加载完成监听:

Image($r("app.media.startIcon"))
   .width(100)
   .height(100)
   .onComplete((event: {
      width: number,
      height: number
   }) => {
      console.info("图片宽度:" + event.width + "图片高度:" + event.height)
   })
参数名类型说明
widthnumber图片的宽。
单位:像素
heightnumber图片的高。
单位:像素
componentWidthnumber组件的宽。
单位:像素
componentHeightnumber组件的高。
单位:像素
loadingStatusnumber图片加载成功的状态值。
说明:
返回的状态值为0时,表示图片数据加载成功。返回的状态值为1时,表示图片解码成功。
contentWidth(10+)number图片实际绘制的宽度。
单位:像素
说明:
仅在loadingStatus返回1时有效。
contentHeight(10+)number图片实际绘制的高度。
单位:像素
说明:
仅在loadingStatus返回1时有效。
contentOffsetX(10+)number实际绘制内容相对于组件自身的x轴偏移。
单位:像素
说明:
仅在loadingStatus返回1时有效。
contentOffsetY(10+)number实际绘制内容相对于组件自身的y轴偏移。
单位:像素
说明:
仅在loadingStatus返回1时有效。

5、接口回调

自定义一个View:ImageTest

@Component
export struct ImageTest {
   //用于点击“确定”按钮的回调 (API10的写法)
   private onButtonClick: () => void = () => {
   }

   build() {
      Text('确定')
         .fontColor(Color.Black)
         .fontSize('28px')
         .width('146px')
         .height('48px')
         .textAlign(TextAlign.Center)
         .borderColor(Color.Blue)
         .borderWidth('1px')
         .borderRadius('10px')
         .onClick(() => {
            this.onButtonClick()
         })
   }
}

ImageTest的引用

ImageTest({ onButtonClick: () => {
   promptAction.showToast({
      message: '我是回调的数据',
      duration: 2000,
   })
} })

6、自定义Dialog弹窗

参考文档:OpenHarmony 自定义弹窗

使用@CustomDialog装饰器装饰自定义弹窗

@CustomDialog
export struct MessageDialog {
   build() {
    
   }
}

7、多态样式

参考链接:OpenHarmony 多态样式

stateStyles样式状态:

  • focused:获焦态。

  • normal:正常态。

  • pressed:按压态。

  • disabled:不可用态。

  • selected:选中态。(API 10中新增)

@Entry
@Component
struct Index {
   @Styles
   normalStyle() {
      .backgroundColor(Color.White)
   }

   @Styles
   pressedStyle() {
      .backgroundColor(Color.Gray)
   }

   build() {
      Column() {
         Text('确定')
            .fontSize('28px')
            .width('146px')
            .height('48px')
            .textAlign(TextAlign.Center)
            .borderColor(Color.Blue)
            .borderWidth('1px')
            .borderRadius('10px')
            .stateStyles({
               normal: this.normalStyle,
               pressed: this.pressedStyle
            })
      }
      .justifyContent(FlexAlign.Center)
      .width('100%')
      .height('100%')
   }
}

8、日期格式化

@Entry
@Component
struct Index {
   @State message: string = '';

   aboutToAppear() {
      setInterval(() => {
         this.initDate()
      }, 1000)
   }

   initDate() {
      let date = new Date()

      let year = this.format(date.getFullYear()) //获取年份
      let month = this.format(date.getMonth() + 1) //获取月份
      let day = this.format(date.getDate()) //获取天数

      let hours = this.format(date.getHours()) //获取小时
      let minutes = this.format(date.getMinutes()) //获取分钟
      let seconds = this.format(date.getSeconds()) //获取秒数

      this.message = year + '年' + month + '月' + day + '日  ' + hours + ':' + minutes + ':' + seconds
   }

   /**
    * 不足十位前面补零
    */
   format(param: number) {
      let value = '' + param
      if (param < 10) {
         value = '0' + param
      }
      return value
   }

   build() {
      Column() {
         Text(this.message)
            .fontSize(30)//字体大小
            .fontColor(Color.Black)//字体颜色
            .fontWeight(FontWeight.Bold) //字体加粗
      }
      .justifyContent(FlexAlign.Center)
      .width('100%')
      .height('100%')
   }
}

效果:

或者通过@ohos.intl (国际化-Intl)来实现,参考文档:

OpenHarmony DateTimeFormat日期格式化

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

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

相关文章

利用Python实现科学式占卜

一直以来,中式占卜都是基于算命先生手工实现,程序繁琐(往往需要沐浴、计算天时、静心等等流程)。准备工作复杂(通常需要铜钱等道具),计算方法复杂,需要纯手工计算二进制并转换为最终的卦象,为了解决这个问题,笔者基于python实现了一套科学算命工具,用于快速进行占卜…

IDEA导出jar

1、选择导出方式 2、选择Main Class 3、构建jar

数据结构与算法教程,数据结构C语言版教程!(第五部分、数组和广义表详解)七

第五部分、数组和广义表详解 数组和广义表&#xff0c;都用于存储逻辑关系为“一对一”的数据。 数组存储结构&#xff0c;99% 的编程语言都包含的存储结构&#xff0c;用于存储不可再分的单一数据&#xff1b;而广义表不同&#xff0c;它还可以存储子广义表。 本章重点从矩阵…

java复习篇 数据结构:链表第二节 哨兵

目录 单向链表哨兵 初始 头插 思路 代码 尾插 思路 遍历 遍历验证头插 尾插代码 尾插测试 get 思路 代码 测试 insert 思路 代码 测试 remove 移除头结点 提问 移除指定位置 测试 单向链表哨兵 单向链表里面有一个特殊的节点称为哨兵节点&#xff0c;…

[pytorch入门] 2. tensorboard

tensorboard简介 TensorBoard 是一组用于数据可视化的工具。它包含在流行的开源机器学习库 Tensorflow 中.但是也可以独立安装&#xff0c;服务Pytorch等其他的框架 可以常常用来观察训练过程中每一阶段如何输出的 安装pip install tensorboard启动tensorboard --logdir<d…

redis-发布缓存

一.redis的发布订阅 什么 是发布和订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式&#xff1a;发送者 (pub) 发送消息&#xff0c;订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 Redis的发布和订阅 客户端订阅频道发布的消息 频道发布消息 订阅者就可…

MATLAB知识点:mode :计算众数

​讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 节选自第3章 3.4.1节 mode &#xff1a;计算众数 众数是指一…

量子网络是什么

量子网络是基于量子力学规律对量子信息进行存储、处理和传输的物理装置&#xff0c;是实现量子通讯和大规模量子计算的基础。清华大学研究团队利用同种离子的双类型量子比特编码&#xff0c;在国际上首次实现无串扰的量子网络节点&#xff0c;对未来实现量子通讯和大规模量子计…

使用Linux SDK客户端向AWS Iot发送数据

参考链接&#xff1a; https://ap-southeast-1.console.aws.amazon.com/iot/home?regionap-southeast-1#/test 此篇文章用于测试&#xff0c;使用Linux SDK客户端向AWS Iot发送数据&#xff0c;准备环境如下&#xff1a; 1、客户端环境准备 1.1 客户端操作系统 虚拟机一台…

Docker中安装 RabbitMQ

1、下载 RabbitMQ 镜像 下载最新版本的镜像&#xff1a; docker pull rabbitmq更多版本的镜像可以访问 Docker 官网&#xff1a;https://hub.docker.com/_/rabbitmq?tabtags 2、创建并运行 RabbitMQ 容器 启动命令&#xff1a; docker run -d -p 15672:15672 -p 5672:567…

音视频基础——音视频录制及播放

音视频录制 Darren老师 当涉及音视频录制时&#xff0c;通常需要从源&#xff08;例如麦克风或摄像头&#xff09;采集音视频数据&#xff0c;并对其进行处理和编码&#xff0c;最后进行封装&#xff0c;以生成最终的音视频文件或流。以下是一般的音视频录制原理的详细步骤&am…

PHP中一些特征函数导致的漏洞总结

第一部分&#xff1a; 特征函数 接触到几个常用的函数&#xff1a; \\ \\\ md5 intval strpos in_array preg_match str_replacephp用这些函数实现过滤一些代码&#xff0c;漏洞可能有一些特性&#xff0c;利用这些特征代码进行对比&#xff1b;账号密码对比&#xff1b;强制检…

leetcode刷题(剑指offer) 105.从前序与中序遍历序列构造二叉树

105.从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,…

【江科大】STM32:USART串口(理论部分)上

串口 全双工&#xff1a;可以进行同步通信 单端信号&#xff1a;信号线传输的就是单端信号。&#xff08;也就是与地线&#xff08;GND&#xff09;的电势差&#xff09; 缺点&#xff1a;防干扰能力差 原因&#xff1a;当信号从A点传输到B点&#xff0c;理想条件是A&#xff0…

java steam 的使用

说steam 前看下kotlin的一个写法如果用java怎么写 fun main() {// 创建一个列表val fruits listOf("Apple", "Banana", "Cherry", "Date", "Elderberry")// 使用 Sequence 进行过滤和映射操作val uppercaseFruitLengths …

qt-C++笔记之命令行编译程序,特别是使用Q_OBJECT宏包含了moc(Meta-Object Compiler)的情况

qt-C笔记之命令行编译程序&#xff0c;特别是使用Q_OBJECT宏包含了moc(Meta-Object Compiler)的情况 —— 杭州 2024-01-24 code review! 文章目录 qt-C笔记之命令行编译程序&#xff0c;特别是使用Q_OBJECT宏包含了moc(Meta-Object Compiler)的情况1.问题现象&#xff1a;q…

【华为 ICT HCIA eNSP 习题汇总】——题目集6

1、IEEE 802.11g 标准支持的最大协商速率为&#xff08;&#xff09;。 A、300Mbps B、150Mbps C、54Mbps D、1200Mbps 考点&#xff1a;无线局域网 解析&#xff1a;&#xff08;C&#xff09; IEEE 802.11系列标准如下表&#xff1a; 标准数据传输速率主要技术IEEE 802.111M…

qml与C++的交互

qml端使用C对象类型、qml端调用C函数/c端调用qml端函数、qml端发信号-连接C端槽函数、C端发信号-连接qml端函数等。 代码资源下载&#xff1a; https://download.csdn.net/download/TianYanRen111/88779433 若无法下载&#xff0c;直接拷贝以下代码测试即可。 main.cpp #incl…

Qt/QML编程之路:ListView实现横排图片列表的示例(40)

ListView列表,在QML中使用非常多,排列一个行,一个列或者一个表格,都会用到ListView。 ListView显示从内置QML类型(如ListModel和XmlListModel)创建的模型中的数据,或在C++中定义的从QAbstractItemModel或QAbstract ListModel继承的自定义模型类中的数据。 ListView有一…

计算机服务器中了mallox勒索病毒解密方案计划,勒索病毒解密措施

计算机技术的不断应用与发展&#xff0c;为企业的生产运营提供了有利条件&#xff0c;但网络安全威胁无处不在。近期&#xff0c;广西某生物制药企业的计算机服务器遭到了mallox勒索病毒攻击&#xff0c;导致企业的计算机所有重要数据被加密&#xff0c;严重影响企业的生产运营…