鸿蒙系列--组件介绍之基础组件

一、通用属性和文本样式 

        针对包含文本元素的组件(比如:Text、Span、Button、TextInput等),可以设置一些通用的文本样式,比如颜色:fontColor、大小:fontSize、样式:fontStyle、 粗细:fontWeight、字体:fontFamily

二、Text

文本组件,可以包含子组件Span

1.基础用法

@Entry
@Component
struct TextPage {
  build() {
    Row() {
      Column() {
        Text("默认样式Text组件")
        Text("可设置基础文本样式")
          .fontColor(Color.Red)
          .fontStyle(FontStyle.Italic)
          .fontSize(30)
          .fontWeight(FontWeight.Bold)
          .fontFamily("Arial,sans-serif")
      }
      .width('100%')
    }
    .height('100%')
  }
}

2.常用属性

textAlign:
@Entry
@Component
struct TextPage {

  build() {
    Row() {
      Column() {
        Text("水平对齐尾部")
          .width('100%')
          .backgroundColor(Color.Yellow)
          .textAlign(TextAlign.End)
      }
      .width('100%')
    }
    .height('100%')
  }
}

        设置文本的对齐方式

参数类型为TextAlign,可选类型:

  • Start:水平对齐首部(默认)
  • Center:水平居中对齐
  • End:水平对齐尾部

maxLines:

        用于设置文本显示最大行数。

textOverflow:

        设置文本截取方式

    .textOverflow({overflow:TextOverflow.Ellipsis})
    .maxLines(1)

        当文本内容较多超出了组件范围时,用来设置文本截取方式,需配合maxLines使用,单独设置不生效

参数类型为TextOverflow,可设置类型:

  • None:无
  • Clip:直接剪裁
  • Ellipsis:将显示不下的文本用 “...” 表示

decoration:

        设置文本装饰线样式及其颜色

 .decoration({ type: TextDecorationType.Underline, color: Color.Red })

设置文本装饰线样式,使用TextDecorationType设置,可设置的类型:

  • None:不使用文本装饰线
  • Overline:文字上划线修饰
  • LineThrough:穿过文本的修饰线,中划线
  • Underline:文字下划线修饰。

使用Color设置本文装饰线颜色

三、Image

图片组件,可以给Image设置图片地址、宽和高

1.基础用法

@Entry
@Component
struct ImagePage {

  build() {
    Row() {
      Column() {
        Image($r("app.media.icon"))
          .width(100)
          .height(100)
      }
      .width('100%')
    }
    .height('100%')
  }
}

2.常用属性

objectFit

        设置图片的缩放类型

    .objectFit(ImageFit.Contain)

使用ImageFit设置,可设置类型:

  • Cover:保持宽高比进行缩小或者放大,使得图片两边都大于或等于显示边界。默认
  • Contain:保持宽高比进行缩小或者放大,使得图片完全显示在显示边界内
  • Auto:自适应显示
  • Fill:不保持宽高比进行放大缩小,使得图片充满显示边界
  • ScaleDown:保持宽高比显示,图片缩小或者保持不变
  • None:保持原有尺寸显示

3.加载网络图片

 Image('https://网络图片.jpg')

        需要在module.json5文件中申明网络访问权限

{
    "module" : {
        "requestPermissions":[
           {
             "name": "ohos.permission.INTERNET"
           }
        ]
    }
}

四、TextInput

输入单行文本

1.基础用法

@Entry
@Component
struct TextInputPage {

  build() {
    Row() {
      Column() {
        TextInput()
          .fontColor(Color.Blue)
          .fontSize(20)
          .fontStyle(FontStyle.Italic)
          .fontWeight(FontWeight.Bold)
          .fontFamily('Arial')
      }
      .width('100%')
    }
    .height('100%')
  }
}

2.设置提示文本:placeholder      

@Entry
@Component
struct TextInputPage {
  build() {
    Row() {
      Column() {
        TextInput({ placeholder: '请输入账号' })
          .placeholderColor(0x999999)
          .placeholderFont({ size: 20, weight: FontWeight.Medium, family: 'cursive', style: FontStyle.Italic })
      }
      .width('100%')
    }
    .height('100%')
  }
}
  • placeholderColor:设置提示文本的颜色
  • placeholderFont:设置提示文本的样式,可以设置文本大小size,粗细weight,样式style,字体family

3.设置输入类型:type

        type的参数类型为InputType,包含的输入类型:

  • Normal:基本输入模式。支持输入数字、字母、下划线、空格、特殊字符
  • Password:密码输入模式
  • Email:e-mail地址输入模式
  • Number:纯数字输入模式

4.设置光标位置

        使用TextInputController的caretPosition方法

创建一个TextInputController对象,将这个对象设置到TextInput组件中,当点击按钮时,如果输入的字符数满足条件,光标会移动到caretPosition设置的position中

@Entry
@Component
struct TextInputPage {
  controller: TextInputController = new TextInputController()

  build() {
    Row() {
      Column() {
        TextInput({ controller: this.controller })
          .type(InputType.Email)

        Button('设置光标位置')
          .onClick(() => {
            this.controller.caretPosition(2)
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

5.获取输入文本

可以给TextInput设置onChange事件,输入文本发生变化时触发回调

@Entry
@Component
struct TextInputPage {
  @State text: string = ''

  build() {
    Row() {
      Column() {
        TextInput({ placeholder: '请输入账号' })
          .onChange((value:string) => {
            this.text = value
          })

        Text(this.text)
      }
      .width('100%')
    }
    .height('100%')
  }
}

6.其他属性

caretColor:

修改光标颜色

    .caretColor(Color.Red)

五、Button

用来响应点击事件操作,可以包含子组件

1.基础用法

实现一个登录按钮

@Entry
@Component
struct ButtonPage {

  build() {
    Row() {
      Column() {
        Button('登录', { type: ButtonType.Capsule, stateEffect: true })
          .width('90%')
          .height(40)
          .fontSize(16)
          .fontWeight(FontWeight.Medium)
          .backgroundColor('#007DFF')
      }
      .width('100%')
    }
    .height('100%')
  }
}

2.设置按钮样式:type

用ButtonType来设置按钮样式,可设置的类型有:

  • Capsule:胶囊型按钮(圆角默认为高度的一半)
  • Circle:圆形按钮
  • Normal:普通按钮(默认不带圆角)

用stateEffect来设置按钮是否开启切换效果(闪动),false时,点击效果关闭,默认值为true。

    Button('登录', { type: ButtonType.Capsule, stateEffect: true })

3.设置按钮点击事件

用onClick来给按钮绑定点击事件

      .onClick(()=>{
            // 处理点击事件逻辑
       })

4.设置子组件

@Entry
@Component
struct ButtonPage {
  build() {
    Row() {
      Column() {
        Button({ type: ButtonType.Capsule, stateEffect: true }) {
          Row() {
            Image($r('app.media.icon'))
              .width(30)
              .height(30)

            Text('登录')
              .fontSize(20)
              .fontColor(Color.White)
          }
        }
        .width('90%')
        .height(40)
        .backgroundColor(Color.Red)
      }
      .width('100%')
    }
    .height('100%')
  }
}

六、LoadingProgress

进度条组件

可以设置颜色color,和宽width、高height        

@Entry
@Component
struct LoadingProgressPage {

  build() {
    Row() {
      Column() {
        LoadingProgress()
          .color(Color.Blue)
          .height(60)
          .width(60)
      }
      .width('100%')
    }
    .height('100%')
  }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring(1)Spring从零到入门 - Spring特点,系统架构简介,两个核心概念IoC与DI(涉及管理第三方bean)

Spring(1)Spring从零到入门 - Spring特点,系统架构简介,两个核心概念IoC与DI(涉及管理第三方bean) 引入:单体服务器 "单体服务器的开发"通常指的是在一个单一的服务器上构建和部署整个…

微信小程序 动态设置状态栏样式

onLoad(options) {//修改状态栏标题wx.setNavigationBarTitle({title: 页面标题, //页面标题success: () > {}, //接口调用成功的回调函数fail: () > {}, //接口调用失败的回调函数complete: () > {} //接口调用结束的回调函数(调用成功、失败…

C# SixLabors.ImageSharp.Drawing的多种用途

生成验证码 /// <summary> /// 生成二维码 /// </summary> /// <param name"webRootPath">wwwroot目录</param> /// <param name"verifyCode">验证码</param> /// <param name"width">图片宽度</…

互联网加竞赛 python+大数据校园卡数据分析

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于yolov5的深度学习车牌识别系统实现 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;4分工作量&#xff1a;4分创新点&#xff1a;3分 该项目较为新颖&am…

德人合科技 | 设计公司文件加密系统——天锐绿盾自动智能透明加密防泄密系统

设计公司文件加密系统——天锐绿盾自动智能透明加密防泄密系统 PC端访问地址&#xff1a; www.drhchina.com 一、背景介绍 设计公司通常涉及到大量的创意作品、设计方案、客户资料等重要文件&#xff0c;这些文件往往包含公司的核心价值和商业机密。因此&#xff0c;如何确保…

@vue/cli脚手架

0_vue/cli 脚手架介绍 目标: webpack自己配置环境很麻烦, 下载vue/cli包,用vue命令创建脚手架项目 vue/cli是Vue官方提供的一个全局模块包(得到vue命令), 此包用于创建脚手架项目 脚手架是为了保证各施工过程顺利进行而搭设的工作平 vue/cli的好处 开箱即用 0配置webpack babe…

个人财务工具、密钥管理平台、在线会计软件、稍后阅读方案 | 开源专题 No.51

gethomepage/homepage Stars: 10.1k License: GPL-3.0 这个项目是一个现代化、完全静态的、快速且安全的应用程序仪表盘&#xff0c;具有超过 100 种服务和多语言翻译的集成。 快速&#xff1a;网站在构建时以静态方式生成&#xff0c;加载时间飞快。安全&#xff1a;所有对后…

全面掌握XSS漏洞攻击,实战案例从Self-XSS到账户接管,以及通过参数污染的XSS实现攻击

全面掌握XSS漏洞攻击,实战案例从Self-XSS到账户接管。 什么是跨站脚本攻击 (XSS)? 跨站脚本攻击(XSS)是一种网络安全漏洞,允许攻击者破坏用户与易受攻击的应用程序之间的交互。它允许攻击者绕过同源策略,该策略旨在将不同的网站隔离开来。XSS漏洞通常允许攻击者伪装成受…

Unity中Shader缩放矩阵

文章目录 前言一、直接相乘缩放1、在属性面板定义一个四维变量&#xff0c;用xyz分别控制在xyz轴上的缩放2、在常量缓存区申明该变量3、在顶点着色器对其进行相乘&#xff0c;来缩放变换4、我们来看看效果 二、使用矩阵乘法代替直接相乘缩放的原理1、我们按如下格式得到缩放矩阵…

【CentOS 7.9 分区】挂载硬盘为LVM操作实例

LVM与标准分区有何区别&#xff0c;如何选择 目录 1 小系统使用LVM的益处&#xff1a;2 大系统使用LVM的益处&#xff1a;3 优点&#xff1a;CentOS 7.9 挂载硬盘为LVM操作实例查看硬盘情况格式化硬盘创建PV创建VG创建LV创建文件系统并挂载自动挂载添加&#xff1a;注意用空格间…

Asp.Net Core 项目中常见中间件调用顺序

常用的 AspNetCore 项目中间件有这些&#xff0c;调用顺序如下图所示&#xff1a; 最后的 Endpoint 就是最终生成响应的中间件。 Configure调用如下&#xff1a; public void Configure(IApplicationBuilder app, IWebHostEnvironment env){if (env.IsDevelopment()){app.UseD…

HTTPS攻击是什么?应该如何应对

近期越来越多的站长以及企业网站负责人有联系反馈说最近HTTPS攻击越来越频繁&#xff0c;让业务无法正常开展从而来寻求解决方法。随着互联网的普及和电子商务的发展&#xff0c;HTTPS协议在保障网络安全方面发挥着越来越重要的作用。然而&#xff0c;HTTPS协议并非完全安全&am…

pytorch-模型预测概率值为负数

在进行ocr识别模型预测的时候&#xff0c;发现预测的结果是正确的&#xff0c;但是概率值是负数&#xff1a; net_out net(img) #torch.Size([70, 1, 41]) logit, preds net_out.max(2) #41是类别 需要对类别取最大值 preds preds.transpose(1, 0).contiguous().view(-1) …

three.js实战模拟VR全景视图

文章中使用到的案例图片都来源于&#xff1a;Humus - Textures 里面有很多免费的资源&#xff0c;可以直接下载&#xff0c;每个资源里面都提供6个不同方位的图片&#xff0c;我们通过threejs稍微处理一下&#xff0c;就能实现以下3D效果的场景了。 <template><div …

AI Native工程化:百度App AI互动技术实践

作者 | GodStart 导读 随着AI浪潮的兴起&#xff0c;越来越多的应用都在利用大模型重构业务形态&#xff0c;在设计和优化Prompt的过程中&#xff0c;我们发现整个Prompt测评和优化周期非常长&#xff0c;因此&#xff0c;我们提出了一种Prompt生成、评估与迭代的一体化解决方案…

BearPi Std 板从入门到放弃 - 后天篇(3)(ESP8266透传点灯)

简介 电脑搭建一个TCP Server&#xff0c; ESP8266 串口设置好透传模式, 再由TCP Server发送指令控制灯的亮灭; 开灯指令&#xff1a; led_on回车 &#xff1b; 关灯指令: led_off回车 主芯片: STM32L431RCT6 LED : PC13 \ 推挽输出即可 \ 高电平点亮 串口: Usart1 / LPUART E…

Flink电商实时数仓(三)

DIM层代码流程图 维度层的重点和难点在于实时电商数仓需要的维度信息一般是动态的变化的&#xff0c;并且由于实时数仓一般需要一直运行&#xff0c;无法使用常规的配置文件重启加载方式来修改需要读取的ODS层数据&#xff0c;因此需要通过Flink-cdc实时监控MySql中的维度数据…

开发医疗陪诊系统源码:搭建安全高效的医患互动平台

本文将深入探讨开发医疗陪诊系统的源码&#xff0c;以及如何搭建一个安全高效的医患互动平台。 一、引言 医疗陪诊系统旨在通过技术手段&#xff0c;缩短患者与医生之间的距离&#xff0c;提供更快速、便捷的医疗服务。 二、技术选型 2.1前端技术 在搭建医疗陪诊系统的前…

Redis-Day3实战篇-商户查询缓存(缓存的添加和更新, 缓存穿透/雪崩/击穿, 缓存工具封装)

Redis-Day3实战篇-商户查询缓存 什么是缓存添加Redis缓存业务流程项目实现练习 - 给店铺类型查询业务添加缓存 缓存更新策略最佳实践方案案例 - 给查询商铺的缓存添加超时剔除和主动更新 缓存穿透/雪崩/击穿缓存穿透概述项目实现 - 商铺查询缓存 缓存雪崩缓存击穿概述互斥锁逻辑…

HBase基础知识(二):HBase集群部署、HBaseShell操作

1. HBase安装部署 1.1 Zookeeper正常部署 首先保证Zookeeper集群的正常部署&#xff0c;并启动之&#xff1a; 创建集群启动脚本&#xff1a; #!/bin/bash case $1 in "start"){ for i in hadoop100 hadoop101 hadoop102 do echo----------zookeeper $i 启动----…
最新文章