鸿蒙开发之ArkUI组件常用组件-Button/Radio/Slider

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:边框设置) ArkTS声明式开发(通用属性:边框设置) 阅读详情

按钮Button

Button是按钮组件,通常用于响应用户的点击操作,其类型包括胶囊按钮、圆形按钮、普通按钮。Button当做为容器使用时可以通过添加子组件实现包含文字、图片等元素的按钮。

创建按钮

Button通过调用接口来创建,接口调用有以下两种形式:

  • 创建不包含子组件的按钮

Button(label?: string, options?: { type?: ButtonType, stateEffect?: boolean })

该接口用于创建不包含子组件的按钮,其中label用来设置按钮文字,type用于设置Button类型,stateEffect属性设置Button是否开启点击效果

 Button('点击一下', { type: ButtonType.Normal, stateEffect: true })
        .borderRadius(10)
        .backgroundColor(0xff3330)
        .width(100)
        .height(40)
    }.width('100%')

  • 创建包含子组件的按钮

Button(options?: {type?: ButtonType, stateEffect?: boolean})

该接口用于创建包含子组件的按钮,只支持包含一个子组件,子组件可以是基础组件或者容器组件。

Button({ type: ButtonType.Normal, stateEffect: true }) {
        Row() {
          Image($r('app.media.icon'))
            .width(35)
            .margin({ left: 0 })
          Text('icon')
            .fontSize(15)
            .fontColor(0xffffff)
            .margin({ left: 0, right: 12 })
        }.alignItems(VerticalAlign.Center)
      }
      .borderRadius(8)
      .backgroundColor(0x317aff)
      .width(80)
      .height(40)

按钮类型

Button有三种可选类型,分别为Capsule(胶囊类型,默认类型)、Circle(圆形按钮)和Normal(普通按钮),通过type进行设置。

  • Capsule 此类型的圆角自动设置为高度的一半,不支持通过borderRadius属性重新设置圆角。

  • Circle 此类型的按钮为圆形,不支持通过borderRadius属性重新设置圆角。

  • Normal 此类型的按钮默认圆角为0,支持通过borderRadius属性重新设置圆角。

单选框Radio

Radio是单选框组件,通常用于提供相应的用户交互选择项,同一组的Radio中只有一个可以被选中。

创建单选框

Radio通过调用接口来创建,接口调用形式如下:

Radio(options: {value: string, group: string})

该接口用于创建一个单选框,其中value是单选框的名称,group是单选框的所属群组名称。checked属性可以设置单选框的状态,状态分别为false和true时,设置为true时表示单选框被选中。Radio仅支持选中和未选中两种样式,不支持自定义颜色和形状。

  Row() {
       Radio({ value: 'Radio1', group: 'radioGroup' })                                                          .checked(false).width(20)
       Radio({ value: 'Radio2', group: 'radioGroup' })
           .checked(true).width(20)
  }

添加事件

除支持通用事件外,Radio通常用于选中后触发某些操作,可以绑定onChange事件来响应选中操作后的自定义行为。

 Row() {
         Radio({ value: 'Radio1', group: 'radioGroup' })
           .onChange((isChecked: boolean) => {
             if(isChecked) {
                 console.log('点击了 Radio1')
             }
           }).checked(false)
         Radio({ value: 'Radio2', group: 'radioGroup' })
           .onChange((isChecked: boolean) => {
             if(isChecked) {
               console.log('点击了 Radio2')
             }
           }).checked(true)
       }

滑动条Slider

滑动条组件,通常用于快速调节设置值,如音量调节、亮度调节等应用场景。

创建滑动条

Slider(options?: {value?: number, min?: number, max?: number, step?: number, style?: SliderStyle, direction?: Axis, reverse?: boolean})

参数:

SliderStyle是枚举,有两个值,OutSet(滑块在滑轨上)、InSet(滑块在滑轨内)

参数direction是Axis,有Vertical纵向和Horizontal横向

属性

事件

onChange(callback: (value: number, mode: SliderChangeMode) => void)

Slider滑动时触发事件回调。

value:当前滑动进度值。若返回值有小数,可使用number.toFixed()方法将数据处理为预期的精度。

mode:拖动状态。SliderChangeMode枚举 : Begin(0-手势/鼠标接触或者按下滑块)、Moving(1-正在拖动滑块过程中)、End(2-鼠标/手势离开滑块)、Click(3-点击滑动条使滑块位置移动)

说明:Begin和End状态当手势点击时都会触发,Moving和Click状态当value值发生变换时触发。

当连贯动作为拖动动作时,不触发Click状态。

value值的变化范围为对应步长steps数组。

        Row() {
          Slider({
            value: this.outSetValueOne,
            min: 0,
            max: 100,
            style: SliderStyle.OutSet
          })
            .showTips(true)
            .onChange((value: number, mode: SliderChangeMode) => {
              this.outSetValueOne = value
              console.info('value:' + value + 'mode:' + mode.toString())
            })
          // toFixed(0)将滑动条返回值处理为整数精度
          Text(this.outSetValueOne.toFixed(0)).fontSize(12)
        }

【鸿蒙实战开发】HarmonyOS语法以及各种基础组件 这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。 阅读详情

相关推荐

鸿蒙应用实战之自定义单选按钮

在上面的代码中,我们使用ForEach循环渲染传进来的字符串数组,然后根据是否选中使用不同的背景进行渲染,然后在选中某个按钮之后,再动态改变选中按钮的背景。完成自定义单选按钮开发之后,接下来在业务代码中引入RadioView组件即可。在电商应用中,我们可以在商品详情页,点击“加入购物车”或“立即购买”按钮唤起商品规格选择面板。虽然,HarmonyOS官方提供了RadioButtonGroup和RidioButton组件,但是其默认的样式并不能满足我们的开发需求,所以此时只能使用自定义组件来实现单选功能。

xiangzhihong8的专栏 794

鸿蒙版手机应用开发入门

 课程目标:你将获得鸿蒙手机应用开发入门的知识点和技术点的细节,能够基于鸿蒙系统开发分布式APP应用;课程简介:鸿蒙OS借助分布式能力造就新硬件、新交互、新服务,打开焕然一新的全场景世界,将必然成为下一个时代——万物互联时代的王者,虽然物联网的概念兴起多年,但是智能设备的割裂,让万物互联始终停留在一个概念上,鸿蒙OS将是把这个概念变成事实的强大操作系统。 这门课程是鸿蒙OS系列课的第一门入门课,详细!详细!再详细!尽可能详细地把鸿蒙OS的应用开发入门知识和技术点讲清楚,讲明白!尤其针对在校IT专业的学生门,能让你们听懂,听明白,会做! 

LeGO-LOAM运行kitti数据集

文章目录1. kitti-lego-loam2. 改动3. 实验结果4. evo轨迹测评 1. kitti-lego-loam 链接:kitti-lego-loam kitti-lego-loam提供了将kitti序列转化成rosbag的代码,在kittibag中. 需要注意下数据文件的存放顺序,以00序列为例: datafolder          |____results          &

Zlp19970106的博客 8703

arkUI:布局的属性(margin、padding、border、borderRadius)

我们可以在ArkUI 中使用内外边距(padding 和 margin)、边框(border)以及圆角(borderRadius)来调整组件的布局和外观。这些样式是前端开发中常用的布局技巧,能够大幅提升界面的美观性和可用性。每个组件的常见用法都有必要记录一下,后续有不懂的可以回顾查看。毕竟官方文档,有些繁杂的。自己积累自己的文本库。碰到啥记录啥,这些都是经验的积累。没想到不难的内容,编写也要耗费这么多时间。

小蜗牛764号的博客 2229

[PCIe5.0] 3.4.1 Flow Control Initialization State Machine Rules

流控初始化是PCIe链路中每个虚拟通道(VC)启用的必经流程,分为FC_INIT1和FC_INIT2两个阶段,确保发送端与接收端的缓冲区信用值协商一致。

系统固件工程师 138

中科大大数据学院2023年保研夏令营机试题目【无offer,直接放题了~】(2023.07.22下午14:35-17:35考试)

给定一串数字,最后一个数是0表示结尾,表示数字串的终止,为无效数字。将该数字串存储在双向链表中,判断是否为回文串,若是,则输出Yes,否则输出No.

m0_51339444的博客 1921

鸿蒙应用开发 | 单选按钮(RadioButton)和单选容器(RadioContainer)的功能与用法

导语:大家好,我是你们的朋友 朋哥,开发了这么久是不是发现了鸿蒙的强大之处,网上很多人说鸿蒙是Android套壳,作为一个技术人千万不要光听别人毫无根据乱说,我也劝那些说这种话的人,多了解一下。。 上一篇原创文章使用了几种组件实现了知乎的登录界面。也是对之前学习的组件的一种总结和实验。 今天继续我们的基础篇的开发,今天聊聊单选按钮和复选框的开发。 下面我们开始今天的文章,还是老规矩,通过如下几点来说: 1,简介 2,用到的属性 3,实战 4,样式设置 简介 RadioBu...

2123

烧录代码显示:no st-link 和Targrt DLL has been cancelled,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1577

鸿蒙ArkUI实战:设置中心与分组配置

本文介绍了使用鸿蒙ArkUI构建设置中心页面的实战案例。该页面包含五大功能区:通知设置(Toggle开关)、显示设置(Slider滑块)、隐私设置(Radio单选)、通用设置(清除缓存/关于应用)和退出登录功能。文章重点讲解了分组列表UI模式的设计方法,以及通过@State状态管理实现各功能区的独立控制。特别强调了ArkUI的双向绑定语法($$)在Toggle、Slider等组件中的应用,并展示了Slider与实时预览文字的联动效果。最后还介绍了使用ForEach构建Radio单选列表的实现方式,通过数字索

2501_94186029的博客 130

Ubuntu零基础教学-如何把Ubuntu20.04界面从英文修改为中文?| 超级详细,建议收藏

带你如何把Ubuntu20.04界面从英文修改为中文?| 超级详细,建议收藏

**My Coding Family** 5338

基于YOLOv8深度学习的火焰与烟雾检测系统详解:UI界面 + YOLOv8 + 数据集的实现

通过自动化检测火焰和烟雾,可以提高响应速度,减少潜在的火灾损失,保障人身和财产安全。此外,应用还会显示标记了检测框的视频画面,方便用户直观了解检测效果。同时,前端界面将使用Streamlit来实现,因其可以快速搭建交互式应用,适合我们的需求。要训练一个有效的火焰和烟雾检测模型,我们需要一个包含火焰和烟雾图片的数据集。为了保证模型的准确性和泛化能力,建议收集至少500张火焰和烟雾的图片,保证数据的多样性和代表性。训练过程中,模型会输出每个Epoch的训练损失和验证准确率,便于我们监控模型的学习情况。

YOLO 1321

仓颉 ArkUI 焦点事件开发指南:焦点链、走焦算法与 onFocus/onBlur 实战

本篇指南完整讲解鸿蒙 ArkUI 中基于仓颉语言的**焦点(Focus)事件体系**:从"焦点、焦点链、走焦、焦点态"等基础概念入手,系统梳理主动走焦与被动走焦的触发机制、三种走焦算法(线性/投影/自定义)的运行规则,并给出 `onFocus`/`onBlur` 获焦失焦监听、`focusable`/`focusOnTouch`/`defaultFocus` 等属性配置以及 `FocusContr

gitblog_01174的博客 1017

DSPy 入门: 再见提示,你好编程

DSPy("Declarative Self-improving Language Programs (in Python)",发音为 "dee-es-pie")[1] 是斯坦福大学 NLP 研究人员开发的 "基础模型编程 "框架。它强调编程而非提示,并将构建基于 LM 的管道从操作提示转向编程。因此,它旨在解决构建基于 LM 应用程序时的脆弱性问题。DSPy 还将程序的信息流与每一步的参数(提示和 LM 权重)分离开来,为构建基于 LM 的应用程序提供了更系统的方法。

具身机器人和通用AI 3482

从零搭建设置页面:HarmonyOS6 PC 状态持久化的完整实战

别小看这个设计细节——用户对隐私选项是敏感的,你得告诉他们这个开关到底控制什么,不能只丢一个"数据分析"的标题让人猜。当你的应用设置项变多以后(相信我,一定会变多的),统一的前缀能让你一眼区分哪些是持久化的、哪些是临时的。的后果是:UI 上看起来切换了,但变量值没变,AppStorage 也没更新。AppStorage 的持久化是有 I/O 开销的,虽然框架做了优化,但你也不必要地去挑战它的极限。的设置页面,涵盖通知、声音、振动、自动保存、字体大小、主题选择、语言切换、隐私设置、清除缓存这些真实场景。

qq_37048082的博客 2973

[QMT量化交易小白入门]-八十九、深度学习训练多维特征进行金融价格行情预测

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 217

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

仓颉 ArkUI Video 视频播放组件实战指南:创建、资源加载、属性与控制器详解

Video 是仓颉(Cangjie)ArkUI 框架中用于播放视频文件并控制播放状态的常用组件,广泛适用于短视频列表页、应用内嵌视频页等场景。本文围绕 [视频播放(Video)](https://link.gitcode.com/i/d99c1e5782800fad16ab8cd48bc8a196) 指南展开,结合 [Video API 参考文档](https://link.gitcode.com

gitblog_00883的博客 420

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

CangjieCorpus:仓颉 ArkUI TextPicker 文本选择器组件全解——创建、属性配置与 onChange 事件实战

本文基于 CangjieCorpus 语料库中的 ArkUI-CJ 组件参考文档([cj-button-picker-textpicker.md](https://link.gitcode.com/i/ffb8e393cba7aae6278830fde95227a5)),完整讲解仓颉 ArkUI 中 TextPicker 滑动文本选择器的创建参数、组件属性(canLoop、defaultPicke

gitblog_00765的博客 367

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

CangjieCorpus ArkUI(仓颉)Select 下拉选择菜单组件 API 详解与实战

本文基于 CangjieCorpus 语料库中的 ArkUI(方舟 UI 框架,Beta 特性)参考文档 [Select 组件](https://link.gitcode.com/i/82b9640aba605c50b3392f82f46a797a),完整讲解仓颉 ArkUI 中 Select 下拉选择菜单组件的构造函数、全部组件属性、组件事件与基础类型定义。读完本文,你将掌握在仓颉应用中用 `S

gitblog_00661的博客 65

鸿蒙(Harmony)开发备忘录-2020606

在页面快进快出时:aboutToAppear、aboutToDisappear、aboutToRecycle等生命周期有可能不会触发执行;特别是在其中有同步方法,组件初始化等问题;

weixin_42285138的博客 222

【ArkUI提高练中学】第6课:NDK进阶与原生渲染管线

本文系统阐述了ArkUI Native侧组件节点的深度操作能力,涵盖渲染节点C API体系、挂载约束与树构建流程,详解ARKUI_NODE_CUSTOM宿主节点与渲染节点的挂载机制。通过自定义绘制事件(前景/内容/背景层)实现精细控制,并结合XComponent+EGL+OpenGL ES搭建高性能GPU渲染管线。重点解析了跨语言零拷贝通信、多线程安全调度及混合渲染策略,最终指导开发者根据场景合理选择渲染方案,实现高效、灵活的Native UI开发。

jackchuanqi的博客 109

基于 HarmonyOS ArkTS API 24 深色模式跟随系统主题切换应用内页面配色动态适配实现方式

鸿蒙HarmonyOS作为华为面向全场景的分布式操作系统,其应用开发体系以ArkTS语言和ArkUI声明式框架为核心。ArkTS在TypeScript的基础上进行了深度扩展,不仅保留了静态类型系统的安全性和开发效率,还增加了对鸿蒙UI声明式语法的原生支持。在ArkUI框架中,开发者通过struct结构体定义UI组件,使用装饰器声明组件类型和状态管理策略,通过链式调用方法设置组件的样式和属性。这种声明式的编程范式让开发者能够以数据驱动的方式构建用户界面——只需要描述"界面应该长什么样",框架会自动处理界面更新

wilbur1688的博客 332

不碰一行代码:Magenta 零代码音乐生成能帮视障创作者写出自己的旋律吗?

想不碰编曲软件就把音乐做出来,Magenta 值得认识一下:它是 Google 旗下做音乐与艺术生成的 AI 项目。最典型的能力就是零代码音乐生成:你只需给出几个音,AI 旋律生成会补齐其余部分,并输出可播放的 MIDI 文件。无论你是视障创作者还是纯新手,靠语音和键盘就能开始。 ## 为什么复杂编曲软件让你卡在第一关 打开一款商业编曲软件,迎面而来的是满屏菜单和快捷键,很多操作依赖鼠标精确定

gitblog_00062的博客 201

基于 HarmonyOS ArkTS API 24 权限弹窗动态申请相机相册存储权限失败回调异常处理方案

现在第一个位置参数的命名约定为 cls,说明它已经是一个创建好的类对象(元类的实例),而不是一个元类对象。name、bases 和 namespace 参数的含义与前面介绍的 type()调用中的参数相同,• bases:这是父类的列表,将成为__bases__属性,并用于构造新创建的类的 MRO。然是 type 类的子类(参见图 3-4),因为如果不是的话,这个类将在继承方面与其他的类。metaclass 参数的值通常是另一个类对象,但它可以是任意可调用对象,只要接受。定义了对象实例的类也是对象。

wilbur1688的博客 213

OpenHarmony 完整项目工程整合规范 + 模块化分层架构(API23+ 标准企业级结构)

前面系列教程覆盖了 ArkUI 组件、路由、生命周期、本地存储、网络请求、Ability 底层全套基础能力,本篇统一梳理,形成可直接用于课程设计、实训、小型商业项目的标准化架构,解决新手代码杂乱、工具类分散、状态管理混乱、资源无统一管理等问题。API23 对工程模块导入、上下文传递、文件引用路径有严格校验,不规范目录会出现编译爆红、上下文丢失、存储初始化失败等问题。本文给出固定目录结构、分层职责、统一导入规范、全局初始化流程、完整 module.json5 配置模板,实现低耦合、易维护的鸿蒙应用工程架构。

Helen_cai的博客 368

HarmonyOS ArkTS 实现类似Android中RadioButton得效果

ArkTs语言中实现类似Android中得radio button得效果

陈志宝‑天津|Android&Java 全栈开发工程师 634

【愚公系列】2023年12月 HarmonyOS教学课程 015-ArkUI组件(Radio)

Radio单选框是一种表单元素,允许用户从一组选项中选择一个选项。它由一个圆圈和一个标签组成,用户只能选择其中一个选项。Radio单选框通常用于表单中,用于收集用户选择的信息,例如用户性别、年龄、爱好等等。

愚公智库 7万+
上一篇: 鸿蒙开发之ArkUI组件常用组件文本输入
下一篇: 鸿蒙开发之ArkUI组件常用组件-CustomDialog/Video
梦想家-mxj
博客等级 码龄11年 187粉丝 209原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值