HarmonyOS4.0 ArkUI常用组件

news2024/12/25 13:23:49

一、Image

语法:

Image(src:string|PixelMap|Resource)

使用方式:

  • string格式:用来加载网络图片,需要在module.json5中申请网络访问权限:ohos.permission.INTERNET

    • Image("http://xxx.png")
      
  • PixelMap格式:可以加载像素图,常用在图片编辑中

    • 需要传递pixelMapObject对象,比较繁琐

    • Image(pixelMapObject)
      
  • Resource格式:加载本地图片,推荐使用

    • Image($r(“app.media.xxx”))
      • app.media固定写法
      • 指向resources/base/media
      • 可省略图片后缀名
    • Image($rawfile(“xxx.png”))
      • 直接指向resources/rawfile
      • 不能省略图片后缀名

    在这里插入图片描述

二、Text

语法:

Text(string|Resource)

使用方式:

  • string格式,直接填写文本内容

    • Text("文本内容")
      
  • Resource格式,读取本地资源文件

    • test_label是一个变量名,当Text组件中的内容不想固定时,可以把数据添加到base/element/string.json中,或者添加到en_US/element/string.json、zh_CN/element/string.json中,系统首先会根据系统的中英文去找en_US或者zh_CN,如果都不匹配,就去默认的base下查找,一般内容会保存国家、语言、设备号等一些信息。

    • Text($r("app.string.test_label"))
      
    • 注意:en_US和zh_Cn设置完后base下也要设置,但是base下的Value无所谓

    • // zh_CN下
      {
        "name": "test_label",
        "value": "测试内容"
      }
      
      // en_US下
      {
        "name": "test_label",
        "value": "test content"
      }
      
      // base下
      {
        "name": "test_label",
        "value": "label"
      }
      
    • @Entry
      @Component
      struct Page4 {
        @State message: string = 'Hello World'
      
        build() {
          Row() {
            Column() {
              Text($r("app.string.test_label"))
                .fontSize(40)
                .fontWeight(FontWeight.Bold)
                .fontColor("#bfda83")
                .lineHeight(40)
            }
            .width('100%')
          }
          .height('100%')
        }
      }
      

    在这里插入图片描述

三、TextInput

TextInput、TextArea是输入框组件,通常用于响应用户的输入操作,比如评论区的输入、聊天框的输入、表格的输入等,也可以结合其它组件构建功能页面,例如登录注册页面。

1、创建输入框

语法:

TextArea(value?:{placeholder?: ResourceStr, text?: ResourceStr, controller?: TextAreaController})
  • Placeholder:内容提示
  • Text:文本内容
@Entry
@Component
struct TextInputUI {

  build() {
    Row() {
      Column() {
      
        TextInput({placeholder:"请输入用户名"})
          .width(200)

        TextInput({text:"文本内容"})
          .width(200)
          .backgroundColor("#1758f0")
          .type(InputType.Password)

      }
      .width('100%')
    }
    .height('100%')
  }
}

在这里插入图片描述

2、事件方法

@Entry
@Component
struct TextInputUI {
  build() {
    Row() {
      Column() {
      
        TextInput({ text: "文本内容" })
          .width(200)
          .backgroundColor("#1758f0")
          .type(InputType.Password)
          .onChange(value => {
            console.log(value)
          })

        /**
            输入框文本内容发生改变就会触发onChange事件
            完整写法:
            onChange((value:string)=>{
              console.log(value)
            })
            如果只有一个参数,那么括号可以省略,并且string类型可以省略
         */

      }
      .width('100%')
    }
    .height('100%')
  }
}

3、案例需求

利用文本输入框的内容来控制图片的大小

@Entry
@Component
struct TextInputUI {

  @State num:number = 200

  build() {
    Row() {
      Column() {


        Image($r("app.media.1"))
          .width(this.num)


        TextInput({ text: this.num.toString() })
          .width(200)
          .backgroundColor("#1758f0")
          .type(InputType.Normal)
          .onChange(value => {
          /*
          ArkTS不允许使用全局对象的属性和方法: Infinity, NaN, isFinite, isNaN, parseFloat, parseInt
          可以使用Number的属性和方法: Infinity, NaN, isFinite, isNaN, parseFloat, parseInt
          API9可以直接使用:parseInt
          API10需要这样使用:Number.parseInt
          */
            this.num = Number.parseInt(value)
          })

      }
      .width('100%')
    }
    .height('100%')
  }
}

四、TextArea

用法和TextInput一致,为了的区别就是TextArea是一个多行输入框,在输入框中可以换行

语法:

TextArea(value?:{placeholder?: ResourceStr, text?: ResourceStr, controller?: TextAreaController})

五、Button

  • 普通按钮
    • Button("普通按钮")
      
  • 自定义按钮:在Button内嵌套其他组件
    • Button(){
        Image($r("app.media.icon")).width(70).margin(100)
      }.type(ButtonType.Circle) // 按钮类型  圆形等等
      .onClick(()=>{
        console.log("事件函数")
      })
      

六、Slider

Slider:滑动条组件

语法:

Slider(option?:SliderOptions)

属性:

Slider({
    min:0, // 最小值
    max:100,// 最大值
    value:30,// 当前值
    step:10,// 滑动步长
    style:SliderStyle.OutSet,// 滑块在滑条外面,InSet:滑块在滑条里面
    direction:Axis.Horizontal,// 滑条水平方向, Vertical:滑条垂直方向
    reverse:false// 是否反向滑动,最大值和最小值是否换位置
})
@Entry
@Component
struct SliderUI {

  build() {
    Row() {
      Column() {

        Slider({
          min:0,
          max:100,
          value:30,
          style:SliderStyle.OutSet
        })
          .width("90%")
          .showTips(true) // 是否展示value的百分比
          .blockColor("#a9b529") // 滑块的背景色
          .trackThickness(8) // 滑动条粗细
          .onChange(value=>{
            console.log(value.toString())
          })

      }
      .width('100%')
    }
    .height('100%')
  }
}
dth("90%")
          .showTips(true) // 是否展示value的百分比
          .blockColor("#a9b529") // 滑块的背景色
          .trackThickness(8) // 滑动条粗细
          .onChange(value=>{
            console.log(value.toString())
          })

      }
      .width('100%')
    }
    .height('100%')
  }
}

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

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

相关文章

Windows11安装MySql-8.0.36安装详细教程(保姆级教程)

之前一直用的mysql5.7,最近导入一个项目一直报错,经查阅发现数据库mysql版本太老,今天特地重头下载安装配置一下,做个记录供大家参考。 下载安装包: 下载地址:https://dev.mysql.com/downloads/ 进入后选…

如何在WHM面板上创建cPanel账户

本周有一个客户,购买Hostease的独立服务器并选择了WHM控制面板,询问我们的在线客服,如何在WHM面板上创建cPanel账户。我们为用户提供教程,用户很快完成了设置。在此,我们分享这个操作教程,希望可以对您有帮…

使用Springboot配置生产者、消费者RabbitMQ?

生产者服务 1、引入依赖以及配置rabbitmq 此时我们通过使用springboot来快速搭建一个生产者服务 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> applica…

智慧数字乡村解决方案大全:标准规范顶层设计指南、供应商整体解决方案及售前PPT、数字乡村标准白皮书等全套460份,一次性打包下载

关键词&#xff1a;数字乡村解决方案&#xff0c;数字乡村标准白皮书&#xff0c;数字乡村建设成功案例&#xff0c;数字乡村发展行动计划&#xff0c;数字乡村建设方案&#xff0c;数字乡村云平台&#xff0c;数字乡村建设指南&#xff0c;智慧乡村建设解决方案&#xff0c;智…

【游戏分析】非游戏领空追字符串来源

通过NPC名称找NPC数组 扫描 NPC名字 ASIC型 发现全部都有后缀 那么采用 字节集的方式去扫描 也是扫不到 说明:不是ASIC型字符串 扫描 NPC名字 Unicode型 没有结果 那么转换成字节集去扫描 终于发现结果了 把结果挨个修改字符串 发现 其中两个是可以用的 22和23 …

什么是超导悬浮?工作原理是什么?

某些材料在冷却到某个温度&#xff08;也称为“临界温度”&#xff09;以下时会完全失去电阻。 1910 年&#xff0c;一位名叫 Heike Kamerlingh Onnes 的荷兰物理学家发现了这一现象。他注意到低于一定温度时电阻突然下降&#xff0c;然后他大胆地声称发现了一种新的物质状态&a…

C++ 【桥接模式】

简单介绍 桥接模式属于 结构型模式 | 可将一个大类或一系列紧密相关的类拆分 为抽象和实现两个独立的层次结构&#xff0c; 从而能在开发时分别使用。 聚合关系&#xff1a;两个类处于不同的层次&#xff0c;强调了一个整体/局部的关系,当汽车对象销毁时&#xff0c;轮胎对象…

觉醒的力量!即使S3,我们应该积极应对,而不是抱怨——早读(逆天打工人爬取热门微信文章解读)

即使S3&#xff0c;我们应该积极应对&#xff0c;而不是抱怨 引言Python 代码第一篇 洞见 觉醒的力量&#xff08;深度好文&#xff09;第二篇 人民日报 来了&#xff01;新闻早班车要闻社会政策 结尾 引言 横眉冷对千夫指&#xff0c;俯首甘为孺子牛 今天迸发出这样的一句话 …

Unity 使用 IL2CPP 发布项目

一、为什么用 IL2CPP Unity的IL2CPP&#xff08;Intermediate Language to C&#xff09;是一个编译技术&#xff0c;它将C#代码转换为C代码&#xff0c;然后再编译成平台相关的二进制代码。IL2CPP提供了几个优点&#xff0c;特别是在性能和跨平台部署方面。以下是IL2CPP的一些…

UI自动化框架搭建以及面试题详解(上)

UI自动化框架搭建以及面试题 UI自动化面试题框架面试题那你讲下如何搭建现成的框架公司里面的框架是你搭建的么请结合你的项目讲解一下你的框架是如何搭建的 PO模式什么是 PO 模式PO 模式的封装原则有哪些 DDT驱动模式什么的项目适合ddt ddt四种模式ddt处理各种类型数据 自动化…

完成产品兼容互认,用KubeBlocks可实现OceanBase集群管理

本文转载自云猿生聊技术&#xff08;CloudNativeDataTech&#xff09; 前言 KubeBlocks&#xff08;简称 KB&#xff09;在最新发布的0.7版本中&#xff0c;通过组件扩展&#xff08;Addon&#xff09;的形式新增了对OceanBase的支持功能。这一更新为企业级和非企业级用户提供…

摄影杂记一

摄影小白&#xff0c;最近买了一台微单&#xff0c;型号是佳能R10&#xff0c;加上18-150套机镜头和佳能RF 50 F1.8定焦镜头。开始学习摄影。 PS&#xff1a;摄影穷三代&#xff0c;单反毁一生。嘿嘿。 一、分镜头拍摄四步提升法 B站&#xff1a;六斤 拍视频三件事&#xff1…

线程池CompletableFuture异步编排复习笔记

一、线程回顾 1.1 初始化线程的 4 种方式 1&#xff09;、继承 Thread public static class Thread01 extends Thread {Overridepublic void run() {System.out.println("当前线程&#xff1a;" Thread.currentThread().getId());int i 10 / 2;System.out.print…

十分钟搞定TCP三次握手面试

三次握手过程 1.客户端与客户端都处于close状态&#xff0c;服务器主动对某端口进行监听后处于LISTEN状态 2.客户端将SYN标志位置为1&#xff0c;向服务器发,SYN和初始序列号seq后处于SYN_SENT状态 2.服务器处于LISTEN状态&#xff0c;收到客户端发来的请求后将SYN和ACK的标志…

基于DCT和扩频的音频水印嵌入提取算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ......................................................................... N 10; %嵌入一…

ubuntu安装编程字体DejaVu Sans Mono

DejaVu Sans Mono 安装命令&#xff1a; sudo apt-get install ttf-dejavu

唐刘:关于产品质量的思考 - 如何评估质量

在上一篇文章《 关于产品质量的思考 - 我的基本认知 》中&#xff0c;作者通过亲身经历分享了对产品质量的思考和认知&#xff1a;高质量的产品不仅仅是通过测试来保证的&#xff0c;更是通过在真实场景中不断打磨和改进得来的。本文为“关于产品质量的思考”系列的第二篇&…

2024.4.2-day07-CSS 盒子模型(显示模式、盒子模型)

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 作业 2024.4.2 学习笔记CSS标签元素显示模式1 块元素2 行内元素3 行内块元素4…

每日OJ题_优先级队列_堆③_力扣692. 前K个高频单词

目录 力扣692. 前K个高频单词 解析代码 力扣692. 前K个高频单词 692. 前K个高频单词 难度 中等 给定一个单词列表 words 和一个整数 k &#xff0c;返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率&#xff0c…

技术再度取得优势,人工智能兴起推动需求,美芯涨价收割市场,收割中国制造?...

独家首发 ------------- 分析机构指出一季度全球存储芯片涨价了15%左右&#xff0c;而近期三星半导体预测全球存储芯片的价格还将继续上涨&#xff0c;预计二季度至少上涨两成&#xff0c;显示出美系芯片在忍受了一年多的亏损之后再度联手涨价。 2022年中国存储芯片取得了重大进…