UI(二)控件

文章目录

          • 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.mfbz.cn/a/750974.html

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

相关文章

RTDETR更换优化器——Lion

RTDETR更换Lion优化器 论文&#xff1a;https://arxiv.org/abs/2302.06675 代码&#xff1a;https://github.com/google/automl/blob/master/lion/lion_pytorch.py 简介&#xff1a; Lion优化器是一种基于梯度的优化算法&#xff0c;旨在提高梯度下降法在深度学习中的优化效果…

vue3中通过vditor插件实现自定义上传图片、录入echarts、脑图、markdown语法的编辑器

1、下载Vditor插件 npm i vditor 我的vditor版本是3.10.2&#xff0c;大家可以自行选择下载最新版本 官网&#xff1a;Vditor 一款浏览器端的 Markdown 编辑器&#xff0c;支持所见即所得&#xff08;富文本&#xff09;、即时渲染&#xff08;类似 Typora&#xff09;和分屏 …

软件必须要进行跨浏览器测试吗?包括哪些内容和注意事项?

随着互联网的普及和发展&#xff0c;用户对软件的要求越来越高。无论是在台式机、笔记本还是移动设备上&#xff0c;用户都希望能够以最好的体验来使用软件。然而&#xff0c;不同的浏览器在解析网页的方式、支持的技术标准等方面存在差异&#xff0c;这就导致了同一个网页在不…

使用J-Link Commander查找STM32死机问题

接口:PA13,PA14&#xff0c;请勿连接复位引脚。 输入usb命令这里我已经连接过了STM32F407VET6了。 再输入connect命令这里我已经默认选择了SWD接口&#xff0c;4000K速率。 可以输入speed 4000命令选择4000K速率: 写一段崩溃代码进行测试: void CashCode(void){*((volatil…

(2024,RNN,梯度消失和爆炸,记忆诅咒,重参数化和动态学习率,权重矩阵对角化,复值 RNN)梯度消失和爆炸并不是故事的结局

Recurrent neural networks: vanishing and exploding gradients are not the end of the story 公和众与号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 1. 梯度消失和梯度爆炸 2. 记…

PyCharm2024 for mac Python编辑开发

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff08;适合自己的M芯片版或Intel芯片版&#xff09;&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功3、打开访达&#xff0c;点击【文…

深入解读一下`android.os.CountDownTimer`

简介 在 Android 开发中&#xff0c;CountDownTimer 是一个非常有用的类&#xff0c;它可以用于倒计时任务&#xff0c;比如倒计时器、限时活动等。CountDownTimer 提供了一个简单的方式来实现定时操作&#xff0c;无需我们手动管理线程和计时器。 本文将深入解析 CountDownT…

大数据------JavaWeb------Maven(完整知识点汇总)

额外知识点 IDE IDE是集成开发环境的缩写&#xff0c;它是一种软件应用程序&#xff0c;提供了编码、调试和部署软件的一站式解决方案。这些功能集成在一起&#xff0c;使开发人员能够在一个环境中完成整个软件开发过程&#xff0c;从编写代码到调试和测试&#xff0c;直到最终…

中霖教育:税务师考试通过率怎么样?

税务师考试的通过率通常在20%至30%的范围内&#xff0c;涵盖五个科目&#xff1a;《税法一》、《税法二》、《财务与会计》、《涉税服务实务》和《涉税服务相关法律》&#xff0c;成绩有效期为五年。 针对税务师备考&#xff0c;有效的学习策略至关重要。 1、熟悉各科的题型和…

什么是 SSH(安全外壳协议)以及如何工作

安全外壳协议&#xff08;Secure Shell&#xff0c;简称SSH&#xff09;&#xff0c;旨在取代未加密的协议&#xff08;如 Telnet 和 RSH&#xff09;和未受保护的文件传输协议&#xff08;如 FTP 和 RCP&#xff09;&#xff0c;在两个设备之间提供安全的加密连接。 安全外壳…

数字社交的领航者:解析Facebook的引领作用

在当今数字化社会中&#xff0c;社交网络已经成为了人们日常生活不可或缺的一部分。而在众多社交平台中&#xff0c;Facebook凭借其巨大的用户基础和创新的技术应用&#xff0c;被公认为数字社交领域的领航者之一。本文将深入解析Facebook在数字社交中的引领作用&#xff0c;探…

免费可视化工具如何提升工作效率?

免费可视化工具能为我们的工作带来什么好处&#xff1f;在如今数据密集的工作环境中&#xff0c;如何高效地处理和展示数据成为了每个行业的重要任务。传统的工具如Excel虽然强大&#xff0c;但在处理复杂数据和创建高级图表时往往显得力不从心。而免费可视化工具的出现&#x…

让DroidVNC-NG支持中文输入

DroidVNC-NG支持控制端输入内容&#xff0c;但是仅支持英文字符&#xff0c;如果需要控制输入法软键盘输入中文的话就没办法了&#xff0c;经过摸索找到了解决办法。 这个解决办法有个条件就是让DroidVNC-NG成为系统级应用&#xff08;这个条件比较苛刻&#xff09;&#xff…

HarmonyOS Next开发学习手册——层叠布局 (Stack)

概述 层叠布局&#xff08;StackLayout&#xff09;用于在屏幕上预留一块区域来显示组件中的元素&#xff0c;提供元素可以重叠的布局。层叠布局通过 Stack 容器组件实现位置的固定定位与层叠&#xff0c;容器中的子元素依次入栈&#xff0c;后一个子元素覆盖前一个子元素&…

谈谈Flink消费kafka的偏移量

offset配置: flinkKafkaConsumer.setStartFromEarliest():从topic的最早offset位置开始处理数据&#xff0c;如果kafka中保存有消费者组的消费位置将被忽略。 flinkKafkaConsumer.setStartFromLatest():从topic的最新offset位置开始处理数据&#xff0c;如果kafka中保存有消费…

全自动封箱机技术革新:效率优化新篇章

在日新月异的物流行业中&#xff0c;全自动封箱机以其高效、精准的特性&#xff0c;成为了不可或缺的关键设备。然而&#xff0c;随着市场竞争的加剧和客户需求的不断升级&#xff0c;如何进一步优化全自动封箱机的效率&#xff0c;成为了行业内外关注的焦点。 一、全自动封箱机…

俯视LLM的灵魂:一文搞懂稀疏自动编码器

实时了解业内动态&#xff0c;论文是最好的桥梁&#xff0c;专栏精选论文重点解读热点论文&#xff0c;围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;…

鸿蒙开发HarmonyOS NEXT (一) 入门

最近总听见大家讨论鸿蒙&#xff0c;前端转型的好方向&#xff1f;先入门学习下 目前官方版本和文档持续更新中 一、开发环境 提示&#xff1a;要占用的空间比较多&#xff0c;建议安装在剩余空间多的盘 1、下载&#xff1a;官网最新工具 - 下载中心 - 华为开发者联盟 (huaw…

滑动窗口1

1. 长度最小的子数组&#xff08;209&#xff09; 题目描述: 算法原理&#xff1a; 这题使用滑动窗口的方法来进行解决&#xff0c;而滑动窗口实际上就是通过定义同向双指针的方式来实现的&#xff0c;两个指针就是窗口的左右边界&#xff0c;然后结合这样的思想来给出这题的…

华为---配置基本的访问控制列表(ACL)

11、访问控制列表&#xff08;ACL&#xff09; 11.1 配置基本的访问控制列表 11.1.1 原理概述 访问控制列表ACL(Access Control List)是由permit或deny语句组成的一系列有顺序的规则集合&#xff0c;这些规则根据数据包的源地址、目的地址、源端口、目的端口等信息来描述。A…