HarmonyOS4.0 ArkUI常用组件

一、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%')
  }
}

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

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

相关文章

医保是如何报销的

《医保是如何报销的》 这是罗师兄的原创文章 预计5-6分钟读完 作者:罗师兄 地球号:luoyun515 很多时候大家听到医保报销比例80%,85%,90%等, 但真正报销后, 实际花费跟报销额度根本达不到这么高&#…

LeetCode-78. 子集【位运算 数组 回溯】

LeetCode-78. 子集【位运算 数组 回溯】 题目描述:解题思路一:回溯,回溯三部曲解题思路二:0解题思路三:0 题目描述: 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的 子…

【OTA】STM32-OTA升级——持续更新

【OTA】STM32-OTA升级——持续更新 文章目录 前言一、ymodem串口协议1、Ymodem 协议2、PC3、蓝牙4、WIFI云平台 二、UDS车载协议1.UDS协议 总结 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、ymodem串口协议 1、Ymodem 协议 STM32 Ymodem …

上海亚商投顾:创业板指缩量下跌 有色等周期股逆势大涨

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指4月3日小幅调整,创业板指跌超1%,黄白二线有所分化。周期股持续走强,其…

电瓶车充电桩主板功能全解析

电瓶车充电桩主板是充电桩的核心部件,其功能涵盖了多个方面,以确保充电过程的安全、高效和便捷。主要功能包括: 智能化充电管理:电瓶车充电桩主板内置智能调度系统,可通过监测电池状态和控制充电流程,实现对…

【STL学习】(3)vector容器

前言 本章主要内容为两个部分: vector是什么?vector常用接口的使用。 一、vector的介绍 vector是表示可变大小数组的容器就像数组一样,vector也采用的连续空间来存储元素。也意味着可以采用下标对vector的元素进行访问,和数组一样…

IEEE顶刊!中科院2区TOP,影响因子逐年上涨!同领域IEEE-Trans,仅47天录用!

(一)期刊简介概况 【期刊类型】计算机医学类SCIE&EI 【出版社】IEEE出版社 【期刊概况】IF:7.0-8.0,JCR1区,中科院2区TOP 【版面类型】正刊,仅10篇版面 【预警情况】2020-2024年无预警记录 【收录…

Linux(centos7)部署spark

Spark部署模式主要有4种:Local模式(单机模式)、Standalone模式(使用Spark自带的简单集群管理器)、Spark On Yarn模式(使用YARN作为集群管理器)和Spark On Mesos模式(使用Mesos作为集…

fuse介绍,机制,调用流程

目录 fuse 引入 介绍 机制 远端服务的文件系统挂载到本地 自定义文件系统 调用流程 fuse内核驱动 用户态文件系统 梳理 fuse 引入 因为用户空间的需求多样,而内核提供的功能固定单一,所以为了迎合用户的需求,就需要引入用户空间驱动的概念 开发者可以通过编写用户空…

zookeeper中的znode节点的一些功能和应用

zookeeper是一个挺好玩的东西 有着独特的选举机制,一般在中小型集群中,zookeeper一般装在三个节点 其中只有一个节点对外提供服务,处于leader状态,另外两台未follower状态 这得益于zookeeper独特的选举机制,可以保证le…

基于SSM+Jsp+Mysql的物流管理系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

python爬虫学习第十五天-------ajax的get和post请求

嗨嗨嗨!兄弟姐妹大家好哇!今天我们来学习ajax的get和post请求 一、了解ajax Ajax(Asynchronous JavaScript and XML)是一种在 Web 开发中用于创建交互式网页应用程序的技术。通过 Ajax,网页可以在不重新加载整个页面…

爱上数据结构:二叉树

​ ​ 🔥个人主页:guoguoqiang. 🔥专栏:数据结构 ​ 一、二叉树的顺序结构及实现 1.二叉树的顺序结构 普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。…

String工具类 StringBuilder、StringBuffer、StringJoiner

StringBuilder StringBuilder是可变字符串对象,是一个字符串容器,里面的字符串是可以改变的,就是用来操作字符串的。相比较于String: 更适合于做修改操作使代码看上去更加简洁效率更高 常見的api 代码 StringBuilder sb new Str…

【随笔】Git 高级篇 -- 整理提交记录(上)cherry-pick(十五)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

【无标题】【Android】Android中Intent的用法总结

2.显示地图: Java代码 Uri uri Uri.parse(“geo:38.899533,-77.036476”); Intent it new Intent(Intent.Action_VIEW,uri); startActivity(it); 3.从google搜索内容 Java代码 Intent intent new Intent(); intent.setAction(Intent.ACTION_WEB_SEARCH); intent.pu…

狗都能看懂的DDPM的论文详解

DDPM/扩散模型是什么 DDPM(Denoising Diffusion Probabilistic Models)是扩散模型的一种,在视觉领域是属于生成式的模型。 扩散模型(Diffusion Model)的概念最早可以追溯到统计物理学中的玻尔兹曼机(Bolt…

WPS解决插入公式在正文带来行间距变大问题

问题描述 写论文解释公式时,插入对应的变量,导致行间距变大,如图 显然上文与下文行间距不等。但无法通过修改数值修改下文行间距。 解决办法

给毕业生推荐的三款二手车

我是一名纯正的90后,2011年毕业,汽车维修专业毕业,从小对汽车非常感兴趣,由于某些不可抗拒的原因,我在当年义无反顾的选择了去学习汽车维修,想着自己能做一名牛B 的汽车修理工,不为别的&#xf…

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--php数组与基本循环

php数组与基本循环 <?php$myName"xixi";$namesarray(xixi1,xixi2,xixi3); ?> <p> Hi ,my name is <?php echo $myName; ?> </p> <p> Hi,my name is <?php echo $names[0] ?> </p> <p> Hi,my name is <?…