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

news2025/4/12 7:14:11

在Android中如实现下图可以用radioGroup和RadioButton实现,但在ArkTs中radio不能实现自定义样式,所以用Tabs来实现这种效果,效果图如下:

一、效果图

在这里插入图片描述
在这里插入图片描述

二、实现横向布局的三个TabContent,代码如下

 @State currentIndex: number = 0;


  Row() {
            Tabs({ barPosition: BarPosition.Start }) {
              TabContent() {
              }.tabBar(this.TabBuilder('按钮1', 0))


              TabContent() {
              }.tabBar(this.TabBuilder('按钮2', 1));


              TabContent() {
              }.tabBar(this.TabBuilder('按钮3', 2))

            }.scrollable(false).barMode(BarMode.Fixed).barHeight(45)

          }
          .height(45)
          .width('80%')
          .margin({ top: 15, bottom: 15 })
          .backgroundColor($r('app.color.radio_button_no'))
          .borderRadius(10)
          .justifyContent(FlexAlign.Center)
          .alignItems(VerticalAlign.Center)

三、TabContent单独得样式,样式可自定义字体颜色背景等,根据自己的需求进行调整


  @Builder TabBuilder(title: string, index: number) {
    Column() {
      Text(title)
        // .margin({ top: $r('app.float.mainPage_baseTab_top') })
        .fontSize(16)
        .fontWeight(FontWeight.Bold)
        .fontColor(this.currentIndex === index ? $r('app.color.white') : $r('app.color.title_text_color'))
    }
    .justifyContent(FlexAlign.Center)
    .height(43)
    .height('90%')
    .width(CommonConstants.FULL_PARENT)
    .borderRadius(10)
    .backgroundColor(this.currentIndex === index ? $r('app.color.radio_button_yes') : $r('app.color.radio_button_no'))
    .onClick(() => {

      this.currentIndex = index;
      console.log('index-------' + index)

    })
  }

这样就实现了按钮切换的效果,如果还有其他更好的方法欢迎评论交流!!!

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

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

相关文章

互联网轻量级框架整合之控制反转和注入

依赖注入和依赖查找 应该说IoC的工作方式有两种,一种是依赖查找,通过资源定位,把对应的资源查找出来,例如通过JNDI找到数据源,依赖查找被广泛使用在第三方的资源注入上,比如在Web项目中,数据源往…

小程序|锁定查询功能如何使用?

学生或家长想要实现自己查询完成后,任何人都无法再次查询,老师应该如何设置?易查分的【锁定查询功能】就可实现,下面教大家如何使用吧。 📌使用教程 🔒锁定查询功能介绍 ✅学生或家长自主锁定:开…

酷开科技丨女性群像大戏《惜花芷》在酷开系统热播中

在这个国产剧市场蓬勃发展的时代,酷开科技通过其生态智能电视系统,为剧迷们打造了一个精彩的观剧平台。通过酷开科技的智能推荐算法,消费者能够轻松地发掘并观看各种题材的高质量剧集,无论是扣人心弦的金融较量、深刻的家庭代际关…

QCustomPlot的了解

(一)QCustomPlot常见属性设置、多曲线绘制、动态曲线绘制、生成游标、矩形放大等功能实现-CSDN博客 关键代码: QT core gui printsupport 使用上面文章中的代码跑起来的程序效果图: 我的学习过程: 最开始初…

位图和布隆过滤器:位图

在《unordered_map 和 unordered_set》 中提到过: 哈希是一种思想,通过哈希函数将数据转化为一个或多个整型 —— 映射关系;通过这种映射关系,可以做到以 O(1) 的时间复杂度查找数据。 本文即将介绍的 位图 和 布隆过滤器 就是两个…

【漏洞复现】泛微OA E-Cology GetLabelByModule SQL注入漏洞

漏洞描述: 泛微OA E-Cology是一款面向中大型组织的数字化办公产品,它基于全新的设计理念和管理思想,旨在为中大型组织创建一个全新的高效协同办公环境。泛微OA E-Cology getLabelByModule存在SQL注入漏洞,允许攻击者非法访问和操…

ubuntu下安装pwndbg

安装pwndbg 如果可以科学上网 首先安装git apt install git 然后拉取git库 git clone GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made Easy 进入到pwngdb的文件夹中 cd pwngdb 执行 ./setup.sh 而后输入gdb 出现红色pwndgb就是安装成功…

图形程序复用新纪元 探讨云库安全分享计划

在公司的开放式办公室中,卧龙与凤雏相邻而坐。周围的同事们都在忙碌地工作,键盘敲击声不绝于耳。卧龙眉头紧锁,全神贯注地调试着复杂的代码,仿佛在挑战编程世界的极限。而凤雏则在完成了一段代码编写后,轻松地伸展着身…

EtherCat:打通EtherCat奇经八脉(一)

一、EtherCat背景介绍 EtherCAT是一种用于实时以太网通信的现场总线协议。它由德国Beckhoff公司于2003年开发,并在2014年成为国际电机工程师协会(IEC)的国际标准(IEC61158-12)。 EtherCAT的设计目标是实现高性能的实时…

【独家发布】公司搭建绩效考核体系的方案(一)

某车辆公司成立于上世纪七十年代,其悠久历史可以追溯到洋务运动时期,曾开创了中国近代工业的先河。该公司拥有近五十年的车辆生产经验及积累,全球共有13个生产基地,22个整车发动机工厂和3个独立变速器工厂,1个技术中心…

JavaScript 进阶(二)

一、深入对象 1. 创建对象的三种方式 利用 new Object 创建对象 2. 构造函数 【注意事项】 【例】 这样子写好之后,想要添加一个新的结构类似的对象,直接照着红圈中写,最后改相应的数据就好了 注意:红色是第一步,黄…

大模型MoE技术深度解读,引领AI走向新高度

大模型系列之解读MoE Mixtral 8x7B的亮相,引领我们深入探索MoE大模型架构的奥秘。MoE究竟是什么?一起揭开它的神秘面纱。 1. MoE溯源 MoE,源自1991年的研究论文《Adaptive Mixture of Local Experts》,与集成学习方法相契合&…

水泡传感器内部结构

水泡传感器内部结构: 水泡传感器放大电路 电路是基于1.6V做的TIA I2V, 也就是输出部分基于1.6V做电压的增加或减少。

五分钟带大家理解什么是网络代理

网络代理是指一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接,一些网关、路由器等网络设备都具备网络代理功能。它的功能就是代理网络用户…

【prometheus】prometheus基于consul服务发现实现监控

目录 一、consul服务发现简介 1.1 consul简介 二、prometheus配置 2.1 node-exporter服务注册到consul 2.2 修改prometheus配置文件 【Prometheus】概念和工作原理介绍_prometheus工作原理-CSDN博客 【Prometheus】k8s集群部署node-exporter 【prometheus】k8s集群部署p…

什么是TCP的粘包、拆包问题?

一、问题解析 TCP粘包和拆包问题是指在进行TCP通信时,因为TCP是面向流的,所以发送方在传输数据时可能会将多个小的数据包粘合在一起发送,而接收方则可能将这些数据包拆分成多个小的数据包进行接收,从而导致数据接收出现错误或者数…

PHP开发中的不安全反序列化

序列化是开发语言中将某个对象转换为一串字节流的过程,转换后的字节流可以方便存储在数据库中,也可以方便在网络中进行传输。而反序列化则是将数据库取出的字节流或从网络上接收到的字节流反向转换为对象的过程。概念虽如此,但不同的开发语言…

SerDes系列之电路技术概述

现在的高速电路设计中,SerDes的应用几乎无处不在,如下图所示的一款SoC,其外设接口除了少量普通的IO,几乎都是SerDes专用接口,因此,电路设计中对于SerDes接口电路的熟知程度,几乎就决定了设计的成…

[数据集][目标检测]电力场景电力目标检测数据集VOC+YOLO格式476张5类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):476 标注数量(xml文件个数):476 标注数量(txt文件个数):476 标注类别…

在Linux系统上使用nmcli命令配置各种网络(有线、无线、vlan、vxlan、路由、网桥等)

前言:原文在我的博客网站中,持续更新数通、系统方面的知识,欢迎来访! 在Linux系统上使用nmcli命令配置各种网络(有线、无线、vlan、vxlan等)https://myweb.myskillstree.cn/123.html 更新于2024/5/13&…