UI(二)控件

news2024/12/25 9:00:24

文章目录

          • PatternLock
          • Progress
          • QRCode
          • Radio
          • Rating
          • RichText
          • ScollBar
          • Search
          • Select
          • Slide
          • Span
          • Stepper和StepperItem
          • Text
          • TextArea
          • TextClock
          • TextInput
          • TextPicker
          • TextTimer
          • TimePicker
          • Toggle
          • Web

PatternLock

PatternLock是图案密码锁组件,以九宫格图案的方式输入密码,用于密码验证场景,指在PatternLock组件区域按下时开始输入状态,手指离开时结束输入状态完成密码输入

PatternLock()
  .sideLength(200) //设置宽度和高度  (宽高相同)
  .circleRadius(9) //设置宫格中圆点的半径
  .pathStrokeWidth(18) //设置连线的宽度 设置为0或者负数等非法值不显示
  .activeColor(Color.Blue) //设置圆点在"激活"状态下的填充颜色
  .selectedColor(Color.Red) //设置圆点在"选中"状态下的填充颜色
  .pathColor(Color.Green)  //设置连线颜色
  .backgroundColor(Color.Yellow)
  .autoReset(true)  //设置在完成密码输入后,再次在组件区域按下时是否重置组件状态

image.png

Progress

Progress 进度条组件用于显示内容加载或者操作进度

  • value: 当前进度值
  • total:总的进度值
  • type:样式

ProgressType有五种

  • Linear:线性
  • Ring:环形无刻度,环形圆环逐渐显示至完全填充效果
  • Eclipse:圆形样式,类似于月圆月缺的效果
  • ScaleRing:环形带有刻度
  • Capsule:胶囊型
Progress({ value: 25, total: 100, type: ProgressType.Linear })
  .width('100%').margin({ top:20 })

Progress({ value:20, total:100, type:ProgressType.Ring })
  .width(150).margin({ top:20 })

Progress({ value:20, total:100, type:ProgressType.Eclipse })
  .width(150).margin({ top:20 })

Progress({ value:20, total:100, type:ProgressType.ScaleRing })
  .width(150).margin({ top:20 })

Progress({ value:20, total:100, type:ProgressType.Capsule })
  .width(150).margin({ top:20 })

image.png

QRCode

QRCode会自动将URL连接转为二维码的图片

QRCode('https://www.baidu.com')
  .width(240).height(240)
  .backgroundColor(Color.Yellow)

image.png

Radio

Radio单选框,提供相应的用户选择项,当前单选框所属的群组名称,相同的group的Radio只能有一个选中

Radio({ value:'radio1', group:'group' })
  .checked(false)
  .width('40%')
  .height('5%')

Radio({ value:'radio2', group:'group'})
  .checked(true)
  .width('40%')
  .height('5%')

Radio({ value:'radio3', group:'group'})
  .checked(true)
  .width('40%')
  .height('5%')

image.png

Rating
Rating({rating:1,indicator:false}) //rating 初始星数  indicator:是否仅作为指示器使用
  .stars(5)
  .stepSize(0.5)
  .onChange((value:number) => {
    console.log("number->"+value)
  })
RichText

RichText是富文本组件,可以解析并显示HTML格式文本。

//RichText  富文本组件
RichText('<h1>Hello World</h1>')
ScollBar

ScollBar用于配合可滚动组件使用,如List、Grid、Scoll等
ScollBar实例化构造函数为ScollBar(value:{scoller:Scoller,direction?:ScollBarDirection,state?:BarState})

  • Scoller:可滚动组件的控制器,用于与可滚动组件进行绑定
  • ScollBarDirection:滚动条的方向,控制可滚动组件对应方向的滚动。默认值是ScollBarDirection.Vertical
  • BarState:滚动条状态,默认值是BarState.Auto
@Component
@Entry

struct compenent06{

  private scoller:Scroller = new Scroller()

  private dataScoller:number[] = [0,1,2,3,4,5,6,7,8,9,10,11]

  build(){
    Row(){

      //RichText  富文本组件
    //  RichText('<h1>Hello World</h1>')

      Stack({alignContent:Alignment.End}){
        //定义一个可滚动组件 定义为scoller
        Scroll(this.scoller){
          Flex({direction:FlexDirection.Column}){
            ForEach(this.dataScoller,(item) =>{
              Row(){
                Text(item.toString())
                  .width('90%')
                  .height('10%')
                  .backgroundColor(Color.Pink)
                  .fontSize(20)
                  .textAlign(TextAlign.Center)
                  .margin({top:5})
              }
            },item => item)
          }.margin({left:50,right:50})
        }
        .scrollBar(BarState.Off)
        .scrollable(ScrollDirection.Vertical)
      }

      //通过scoller进行绑定 绑定scoller
      ScrollBar({
        scroller:this.scoller,
        direction:ScrollBarDirection.Vertical,
        state:BarState.Auto
      }){
        Text()
          .width(30)
          .height(100)
          .borderRadius(20)
          .backgroundColor(Color.Red)

      }
      .width(80)
      .backgroundColor(Color.Gray)

    }
  }
}

格式工厂 屏幕录像20240625_174450 00_00_00-00_00_09~1.gif

Search
Search({placeholder:'输入内容...'})
  .searchButton('搜索')  //搜索按钮的文字
  .width('100%')
  .height('5%')
  .placeholderColor(Color.Red)  // 提示文本样式
  .placeholderFont({size:18,weight:200}) // 提示文字字体大小
  .textFont({size:18,weight:200})   // 搜索框文本字体大小
  .onSubmit((value:String) => {  // 单机搜索图标、搜索按钮或者按下软键盘搜索按钮时触发的回调
    
  })
  .onChange((value: String) => {  // 输入内容发生改变时触发的回调
    
  })
Select

下拉选择菜单

Select([{ value: 'Java核心编程', icon: $r('app.media.img1') },
  { value: 'C语言程序设计', icon: $r('app.media.img2') },
  { value: 'HarmonyOs应用开发', icon: $r('app.media.img3') },
  { value: 'Vue全站开发', icon: $r('app.media.img4') }])
  .selected(2) //默认选中的下拉列表索引
  .value('选择课本') //下拉按钮本身的文本内容
  .font({ size: 20, weight: 500 }) //下拉按钮本身的文本样式
  .fontColor(Color.Red) //下拉按钮文本颜色
  .selectedOptionFont({ size: 20, weight: 400 }) //下拉菜单项中项的文本样式
  .optionFont({ size: 20, weight: 400 }) //下拉菜单项的文本样式
  .onSelect((index: number, value?: string) => { // 选中监听 index 为索引下标 value是选中值
    console.log('info', 'index->' + index)
    console.log('info', 'value->' + value)
  })

格式工厂 屏幕录像20240625_230642 00_00_01-00_00_08.gif

Slide

Slide滑动条组件,用于快速调节设置值,如音量调节,亮度调节

Slider({
  value: 40,
  step: 5,
  style: SliderStyle.InSet, //滑块在滑轨上
  direction: Axis.Vertical //方向
})
  .showSteps(true)
  .height('50%')
  .onChange((value: number, mode: SliderChangeMode) => {

  })

Slider({
  value:40,
  min:0,
  max:100,
  step:5,
  style:SliderStyle.OutSet,  //滑块在轨道内
  direction:Axis.Horizontal
})
  .blockColor(Color.Red)  // 设置滑块的颜色
  .trackColor(Color.Blue) //滑轨的背景色
  .selectedColor(Color.Green) // 已经滑动的颜色
  .showTips(true) //设置气泡提示
  .showSteps(true) // 是否显示步长刻度值
  .trackThickness(4)  //设置滑轨粗细
  .width('80%')
Span
  • 作为Text组件的子组件,用于显示行内文本
  • 主要属性
    • decoration:设置文本装饰线样式及其颜色
    • letterSpacing:设置文本字符间间距
    • textCase:设置文本大小写
Text(){
  Span('文本添加下横线').decoration({type:TextDecorationType.Underline,color:Color.Green})
    .fontSize(24)
}

Text(){
  Span('文本添加删除线').decoration({type:TextDecorationType.LineThrough,color:Color.Red})
    .fontSize(24)
}

Text(){
  Span('文本添加上横线').decoration({type:TextDecorationType.Overline,color:Color.Red})
    .fontSize(20)
}

Text(){
  Span('测试字间距').letterSpacing(10).fontSize(20)
}

Text(){
  Span('测试转化为小写  ABCDEFG').textCase(TextCase.LowerCase).decoration({type:TextDecorationType.None})
    .fontSize(20)
}

image.png

Stepper和StepperItem

Stepper是步骤导航器组件,适用于引导用户按照步骤完成任务的导航场景,StepperItem是Stepper组件的页面子组件。

Stepper({
  index:0
}){
  StepperItem(){
    Text('第一页').fontSize(20)
  }
  .nextLabel('下一页')

  StepperItem(){
    Text('第二页').fontSize(20)
  }
  .nextLabel('下一页')
  .prevLabel('上一页')

  StepperItem(){
    Text('第三页').fontSize(20)
  }
  .prevLabel('上一页')
}

格式工厂 屏幕录像20240626_101304 00_00_01-00_00_10.gif

Text
textAlign设置文本在水平方向的对齐方式(TextAlign.Center/ TextAlign.Start /TextAlign.End )
textOverflow设置文本超长时的显示方式。默认值是TextOverflow.Clip
maxLines设置文本的最大行数,默认值是Infinity
lineHeight设置文本的行高,设置值不大于0时,不限制文本行高,自适应字体大小,
decoration设置文本装饰线样式以及颜色
baselineOffset设置文本基线的偏移量,默认值为0
letterSpacing设置文本字符间间距
minFontSize设置文本最小显示字号,需要配合maxFontSize,maxline或布局大小限制使用,单独设置不生效
maxFontSize设置文本最大显示字号,需要配合minFontSize,maxline或布局大小限制使用,单独设置不生效
textCase设置文本大小写,默认为TextCase.Normal
copyOption组件支持设置文本是否可粘贴复制
//单行文本 红色单行文本居中
Text('红色单行文本居中')
  .fontColor(Color.Red)
  .textAlign(TextAlign.Center)
  .width('100%')

// 带有边框左对齐文本
Text('单行文本带边框左对齐')
  .fontSize(20)
  .fontColor(Color.Blue)
  .border({width:1})
  .textAlign(TextAlign.Start)
  .padding(10)
  .width('100%')
  .margin({
    top:20
  })

// 多行文本 超出maxLines截断内容
Text('寒雨连江夜入吴,平明送客楚山孤,洛阳亲友如相问,一片冰心在玉壶ddddddddd')
  .textOverflow({overflow:TextOverflow.None})  //超出截断内容
  .maxLines(2)
  .fontSize(20)
  .padding(10)

//超出maxline显示省略号
Text('寒雨连江夜入吴,平明送客楚山孤,洛阳亲友如相问,一片冰心在玉壶ddddddddd')
  .textOverflow({overflow:TextOverflow.Ellipsis})
  .maxLines(2)
  .fontSize(20)
  .padding(10)
  .lineHeight(50)  //设置行高

image.png

TextArea

TextArea是多行文本输入框组件,当输入的内容超过组件宽度会自动换行显示。

placeHolderColor设置placeholder文本颜色
placeholderFont设置placeholder文本样式
textAlign输入框的水平对齐方式
caretColor输入框光标颜色
inputFilter通过正则表达式设置输入过滤器,匹配表达式的输入允许条件显示,不匹配的则过滤
copyOption设置输入的文本是否可复制
TextArea({
  placeholder:'请输入一段介绍..'
})
  .placeholderFont({size:20,weight:400})// 设置placeholder的文本样式
  .width(336)
  .height(100)
  .caretColor(Color.Red) //光标颜色
  .margin(20)
  .fontSize(16)
  .backgroundColor(Color.Orange)

image.png

TextClock
TextClock().margin(20).fontSize(30)
TextClock().margin(20).fontSize(30).format('yyyyMMdd hh:mm:ss') //日期格式化

image.png

TextInput

单行文本输入框组件

type设置输入框类型,默认值是InputType.Normal
placeholderColor默认值文本颜色
placeholderFont默认值文本样式
entryKeyType设置输入法回车键类型,目前仅支持默认类型显示
caretColor设置光标颜色
maxLength设置最大长度
showPasswordIcon在密码输入模式下,是否展示输入框末尾的图标
TextInput({placeholder:'请输入...'})
  .placeholderColor(Color.Gray)
  .placeholderFont({size:30,weight:300})
  .caretColor(Color.Blue)  //光标颜色
  .width('100%')
  .margin(20)
  .fontColor(Color.Green)
  .type(InputType.Password) //设置密码类型
  .maxLength(11) //最大输入长度
  .showPasswordIcon(true)  // 输入框末尾的图标显示

image.png

TextPicker

TextPicker是滑动选择文本内容的组件

TextPicker({range:['Java 核心编程','Android 第一行代码','HarmonyOS入门','Vue 全站开发'],
  selected:1})
  .width('100%')
  .defaultPickerItemHeight(30) //默认Pick各项的高度

格式工厂 屏幕录像20240626_141459 00_00_00-00_00_04.gif

TextTimer

TextTimer是通过文本显示计时信息并控制其计时器状态的组件,TextTimer组件支持绑定一个TextTimeController来控制文本计时器。

private textTimerController: TextTimerController = new TextTimerController()
TextTimer({
  controller:this.textTimerController,
  isCountDown:true,  //是否倒计时  默认为false
  count:3000  //倒计时时间,单位为毫秒
})
  .format('mm:ss.SS')  //格式化
  .fontColor(Color.Red)
  .margin({top:30})
  .fontSize(30)

Row(){
  Button('开始')
    .type(ButtonType.Capsule)
    .onClick(() => {
      this.textTimerController.start()
    })
  Button('暂停')
    .onClick(() => {
    this.textTimerController.pause()
  })
  Button('重置').onClick(() => {
    this.textTimerController.reset()
  })
}

格式工厂 屏幕录像20240626_143013 00_00_00-00_00_09.gif

TimePicker

TimePicker是滑动选择时间的组件

TimePicker()
  .useMilitaryTime(true)  // 是否设置为24小时制
  .onChange((value: TimePickerResult) => { //选择监听

  })
Toggle

Toggle组件提供复选框样式,状态按钮样式以及开关样式,仅当ToggleType为Button时可包含子组件。
Toggle组件的构造函数参数主要有两个:
type:开关类型,可以是Checkbox,Button,Switch
isOn:开关是否打开,设置Switch类型的圆形滑块颜色

Toggle组件还可以设置一下属性
selectedColor:设置组件打开状态的背景颜色
switchPointColor: 设置Switch类型的圆形滑块颜色

//设置为Switch样式
Toggle({type:ToggleType.Switch,isOn:true})
  .size({width:40,height:40})
  .selectedColor(Color.Red)  //组件打开状态下的背景颜色
  .switchPointColor(Color.Blue) // Switch类型的圆形滑块颜色

//设置为CheckBox样式
Toggle({type:ToggleType.Checkbox,isOn:false})
  .size({width:40,height:40})
  .selectedColor(Color.Red)

//设置为Button样式
Toggle({type:ToggleType.Button,isOn:false})
  .size({width:40,height:40})
  .selectedColor(Color.Red)

image.png

Web

用于展示网页的组件,需要加上网络权限

import webview from '@ohos.web.webview';


private webviewController:webview.WebviewController = new webview.WebviewController()


Web({src:"https://www.baidu.com",controller:this.webviewController})

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

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

相关文章

vscode php dubug xdubg

前提&#xff1a;官网安装了PHP 一、检测是否有xdebug插件 二、如果没有插件&#xff0c;下载对应版本的插件&#xff0c;并且配置php 1、查看自己php版本&#xff1a; 2、xdebug下载地址&#xff1a; https://xdebug.org/download/historical 我下载的是箭头所示&#xff0…

【SHAP解释运用】基于python的树模型特征选择+随机森林回归预测+SHAP解释预测

1.导入必要的库 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestRegressor from sklearn.tree import export…

对input输入框脱敏的实现(input输入时可回删、可粘贴)

目录 1.要解决的问题2.第一回合&#xff1a;substring replace3.第二回合&#xff1a;移魂大法4.第三回合&#xff1a;移花接木5.第四回合&#xff1a;万佛归宗 写在前面&#xff1a; 如有转载&#xff0c;务必注明出处&#xff0c;否则后果自负。 1.要解决的问题 继续与客户…

从云原生视角看 AI 原生应用架构的实践

本文核心观点&#xff1a; 基于大模型的 AI 原生应用将越来越多&#xff0c;容器和微服务为代表的云原生技术将加速渗透传统业务。API 是 AI 原生应用的一等公民&#xff0c;并引入了更多流量&#xff0c;催生企业新的生命力和想象空间。AI 原生应用对网关的需求超越了传统的路…

云计算运维工程师的突发状况处理

云计算运维工程师在应对突发的故障和紧急情况时,需要采取一系列迅速而有效的措施来最小化服务中断的时间并恢复系统的稳定性。 以下是一些关键步骤和策略: 快速响应: 立即识别并确认故障的性质和范围。通知团队成员和相关的利益相关者,确保所有人了解当前情况。故障诊断:…

Web Worker 学习及使用

了解什么是 Web Worker 提供了可以在后台线程中运行 js 的方法。可以不占用主线程&#xff0c;不干扰用户界面&#xff0c;可以用来执行复杂、耗时的任务。 在worker中运行的是另一个全局上下文&#xff0c;不能直接获取 Window 全局对象。不同的 worker 可以分为专用和共享&…

使用 Vue Router 的 meta 属性实现多种功能

在 Vue.js 中&#xff0c;Vue Router 提供了强大的路由管理功能。通过 meta 属性&#xff0c;我们可以在路由定义中添加自定义元数据&#xff0c;以实现访问控制、页面标题设置、角色权限管理、页面过渡效果等多种功能。本文将总结如何使用 meta 属性来实现这些常见的功能。 1.…

gici-open学习日记(7):GNSS图优化——RTK

gici-open学习日记——GNSS RTK图优化 前言初始化RTK的调用rearrangePhasesAndCodes双差构造formPhaserangeDDPair周跳探测cycleSlipDetectionSD添加参数块模糊度参数部分addSdAmbiguityParameterBlocks添加双差伪距残差addDdPseudorangeResidualBlocks添加双差相位残差addDdPh…

springcloud-gateway 路由加载流程

问题 Spring Cloud Gateway版本是2.2.9.RELEASE&#xff0c;原本项目中依赖服务自动发现来自动配置路由到微服务的&#xff0c;但是发现将spring.cloud.gateway.discovery.locator.enabledfalse 启动之后Gateway依然会将所有微服务自动注册到路由中&#xff0c;百思不得其解&a…

手把手从零开始搭建远程访问服务

远程访问服务工具——FRP frp 是一个能够实现内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网的服务器来转发。 资源链接 根据自己服务型号和操作系统来选取对应的文件&#xff0c;不知道的…

汽车EDI: BMW EDI项目案例

宝马集团是全世界成功的汽车和摩托车制造商之一&#xff0c;旗下拥有BMW、MINI和Rolls-Royce三大品牌&#xff1b;同时提供汽车金融和高档出行服务。作为一家全球性公司&#xff0c;宝马集团在14个国家拥有31家生产和组装厂&#xff0c;销售网络遍及140多个国家和地区。 本文主…

mitt通信

一、mitt介绍 mitt是一款轻量级的组件通信插件(大小仅为200字节左右) 二、mitt安装 npm install --save mitt三、使用 1.在组件中使用 import mitt from mitt //创建mitt实例 const emitter mitt()// 监听事件 emitter.on(foo, e > console.log(foo, e) )// 通过通配符监…

09. Java ThreadLocal 的使用

1. 前言 本节内容主要是对 ThreadLocal 进行深入的讲解&#xff0c;具体内容点如下&#xff1a; 了解 ThreadLocal 的诞生&#xff0c;以及总体概括&#xff0c;是学习本节知识的基础&#xff1b;了解 ThreadLocal 的作用&#xff0c;从整体层面理解 ThreadLocal 的程序作用&…

VC++开发积累——vc++6.0中删除函数的方法,右键,Delete

目录 引出插曲&#xff1a;删除函数的方法多行注释的实现代码输入的自动提示搜索出来&#xff0c;标记和取消标记跳转到上一步的位置 ctrl TAB 总结其他规范和帮助文档创建第一个Qt程序对象树概念信号signal槽slot自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自…

千呼新零售2.0-OCR拍照识别采购单

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物、中医养生、大健康等连锁店…

Python 实现Excel转TXT,或TXT文本导入Excel

Excel是一种具有强大的数据处理和图表制作功能的电子表格文件&#xff0c;而TXT则是一种简单通用、易于编辑的纯文本文件。将Excel转换为TXT可以帮助我们将复杂的数据表格以文本的形式保存&#xff0c;方便其他程序读取和处理。而将TXT转换为Excel则可以将文本文件中的数据导入…

AI引领创意潮流:高效生成图片,参考图助力,一键保存到指定文件夹

在这个数字与创意交融的时代&#xff0c;我们迎来了AI绘画的新纪元。借助先进的AI技术&#xff0c;我们不仅能够高效生成图片&#xff0c;还能在参考图的启发下&#xff0c;激发无限创意&#xff0c;让您的想象力在数字世界中自由翱翔。 首助编辑高手软件中的魔法智能绘图板块&…

PMP证书在国内已经泛滥了,大家怎么看?

目前&#xff0c;越来越多的人获得了PMP证书。自1999年PMP引入中国以来&#xff0c;全国累计PMP考试人数接近60万人次&#xff0c;通过PMP认证的人数约为42万人。虽然这个数据看起来很大&#xff0c;但绝对不能说是过多。 首先&#xff0c;PMP在中国并不普遍。根据美国项目管理…

解决go语言对接s3的SDK上传文件遇到的问题

先看正确的配置 问题1 配置文件中的OssEndpoint 不管是minio还是oss需要带上http://或者https:// 否则会出现这个问题 operation error S3: PutObject, exceeded maximum number of attempts, 3, https response error StatusCode: 0, RequestID: , HostID: , request send …

qt报错:“QtRunWork”任务返回了 false,但未记录错误。

qt报错&#xff1a;“QtRunWork”任务返回了 false&#xff0c;但未记录错误。 说明情况一 说明 这个报错可能的原因有很多&#xff0c;这里只写一种&#xff0c;以后遇到再进行补充。 情况一 如果 Q_OBJECT 宏未正确处理&#xff0c;通常会出现类似的错误。 要使用信号与槽…