鸿蒙界面开发——组件(10):单选框Radio复选框checkbox 下拉框select 多条件筛选Filter

news2025/2/22 17:26:39

单选框Radio

在这里插入图片描述
单选框一直会有这个圆圈,在选中和未选中之间切换状态。

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

Radio(options: RadioOptions)
Radio(options: {value: string, group: string
,indicatorType:RadioIndicatorType,(新增)
indicatorBuilder:CustomBuilder(新增)
})

其中,value是单选框的名称,group是单选框的所属群组名称。
checked属性可以设置单选框的状态,状态分别为false和true,设置为true时表示单选框被选中。

Radio支持设置选中状态和非选中状态的样式,不支持自定义形状。
从API version 12开始,Radio支持自定义选中状态。

1.首先将RadioIndicatorType设为Custom,表示选中样式为indicatorBuilder中的内容。
2.指定indicatorBuilder,可以在builder创建选中的样式
Radio( {value: '1', group: '1'
,indicatorType: RadioIndicatorType.CUSTOM,
indicatorBuilder: this.myCustomBuilder
})

Radio({ value: 'Radio3', group: 'radioGroup',
  indicatorType:RadioIndicatorType.CUSTOM,
indicatorBuilder:()=>{this.indicatorBuilder()} 这里为什么是一个箭头函数
})

Radio添加事件

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

  Radio({ value: 'Radio1', group: 'radioGroup' })
    .onChange((isChecked: boolean) => {
      if(isChecked) {
        //需要执行的操作
      }
    })
  Radio({ value: 'Radio2', group: 'radioGroup' })
    .onChange((isChecked: boolean) => {
      if(isChecked) {
        //需要执行的操作
      }
    })

Radio参数

Radio(options: RadioOptions)
RadioOptions:value|string; 
group|string; 
indicatorType|RadioIndicatorType; 
	RadioIndicatorType: 
	TICK	选中样式为系统默认TICK图标。
	DOT	选中样式为系统默认DOT图标。
	CUSTOM	选中样式为indicatorBuilder中的内容。

indicatorBuilder|CustomBuilder

自定义选中样式

// xxx.ets
@Entry
@Component
struct RadioExample {
  @Builder 
  //定义自定义结构样式
  indicatorBuilder() {
    Image($r("app.media.star"))
  }
  build() {
    Flex({ direction: FlexDirection.Row, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
      Column() {
        Text('Radio3')
        Radio({ value: 'Radio3', group: 'radioGroup',
        //设置选中样式类型
          indicatorType:RadioIndicatorType.CUSTOM,
          indicatorBuilder:()=>{this.indicatorBuilder()}
        }).checked(false)
          .height(50)
          .width(80)
          .onChange((isChecked: boolean) => {
            console.log('Radio3 status is ' + isChecked)
          })
      }
    }.padding({ top: 30 })
  }
}

Radio属性

checked(value: boolean)设置单选框的选中状态。
radioStyle(value?: RadioStyle)设置单选框选中状态和非选中状态的样式。
RadioStyle:
	checkedBackgroundColor	ResourceColor	否	开启状态底板颜色。默认值:#007DFF
	uncheckedBorderColor	ResourceColor	否	关闭状态描边颜色。默认值:#182431
	indicatorColor	ResourceColor	否	开启状态内部圆饼颜色。选中之后的颜色√或者dot的颜色。默认值:#FFFFFFAPI version 12开始,indicatorType设置为RadioIndicatorType.TICK和RadioIndicatorType.DOT时,支持修改内部颜色。indicatorType设置为RadioIndicatorType.CUSTOM时,不支持修改内部颜色。

默认值:#FFFFFF

contentModifier(modifier: ContentModifier<RadioConfiguration>)定制Radio内容区的方法。
在Radio组件上,定制内容区的方法。modifier: 内容修改器,开发者需要自定义class实现ContentModifier接口。

Radio事件

除支持通用事件外,还支持以下事件:

onChange
onChange(callback: (isChecked: boolean) => void)

单选框选中状态改变时触发回调。

复选框Checkbox

Checkbox(options?: CheckboxOptions)

API version 11开始,Checkbox默认样式由圆角方形变为圆形。
CheckboxOptions对象说明:

  • name string 否 用于指定多选框名称。
  • group string 否 用于指定多选框所属群组的名称(即所属CheckboxGroup的名称)。说明:未配合使用CheckboxGroup组件时,此值无用。
  • indicatorBuilder CustomBuilder 否 配置多选框的选中样式为自定义组件。自定义组件与Checkbox组件为中心点对齐显示。indicatorBuilder设置为undefined/null时,默认为indicatorBuilder未设置状态。
Checkbox({ name: 'checkbox1', group: 'checkboxGroup' })
      .select(true)
      .selectedColor(0xed6f21)
      .shape(CheckBoxShape.CIRCLE)
      .onChange((value: boolean) => {
        console.info('Checkbox1 change is' + value)
      })

Checkbox属性

  1. select(value: boolean)设置多选框是否选中。从API version 10开始,该属性支持$$双向绑定变量。
  2. selectedColor(value: ResourceColor) 设置多选框选中状态颜色。
  3. unselectedColor(value: ResourceColor)设置多选框非选中状态边框颜色。
  4. mark(value: MarkStyle)设置多选框内部图标样式。
    从API version 12开始,设置了indicatorBuilder时,按照indicatorBuilder中的内容显示。默认值:
{strokeColor : $r('sys.color.ohos_id_color_foreground_contrary'),
strokeWidth: $r('sys.float.ohos_id_checkbox_stroke_width'),
size: '20vp'}
  1. shape(value: CheckBoxShape)设置CheckBox组件形状, 包括圆形和圆角方形。CheckBox组件形状, 包括圆形和圆角方形。默认值:CheckBoxShape.CIRCLE
  2. contentModifier(modifier: ContentModifier)定制CheckBox内容区的方法。

事件

支持通用事件外,还支持以下事件:

onChange
onChange(callback: (value: boolean) => void)

当选中状态发生变化时,触发该回调。

CheckboxGroup

多选框群组,用于控制多选框全选或者不全选状态
在这里插入图片描述

CheckboxGroup(options?: CheckboxGroupOptions)

创建多选框群组,可以控制群组内的Checkbox全选或者不全选,group值相同的Checkbox和CheckboxGroup为同一群组。
在结合带缓存组件使用时(如List),未被创建的Checkbox选中状态需要应用手动控制。

CheckboxGroupOptions对象说明:

  • group string 否 群组名称。多个相同群组名称的CheckboxGroup,仅第一个CheckboxGroup生效。

CheckBoxGroup属性

  1. selectAll(value: boolean)设置是否全选。若同组的Checkbox显式设置了select属性,则Checkbox的优先级高。
  2. unselectedColor
  3. mark
  4. checkboxShape

CheckBoxGroup事件

除支持通用事件外,还支持以下事件:

onChange(callback: (event: CheckboxGroupResult) => void )

CheckboxGroup的选中状态或群组内的Checkbox的选中状态发生变化时,触发回调。

下拉框select

提供下拉选择菜单,可以让用户在多个选项之间选择。

Select(options: Array<SelectOption>)

SelectOption对象说明:

  • value ResourceStr 是 下拉选项内容。
  • icon ResourceStr 否 下拉选项图片。
  • symbolIcon SymbolGlyphModifier 否 下拉选项Symbol图片。symbolIcon优先级高于icon。

Select属性

除支持通用属性外,还支持以下属性:

  1. selected(value: number | Resource) 设置下拉菜单初始选项的索引,第一项的索引为0。当不设置selected属性或设置异常值时,默认选择值为-1,菜单项不选中;当设置为undefined、null时,选中第一项。从API version 10开始,该参数支持$$双向绑定变量。
  2. value(value: ResourceStr)设置下拉按钮本身的文本内容。当菜单选中时默认会替换为菜单项文本内容。从API version 10开始,该参数支持$$双向绑定变量。
  3. controlSize(value: ControlSize)设置Select组件的尺寸。默认值:ControlSize.NORMAL

controlSize、width、height接口作用优先级:

	1)如果开发者只设置了width和height,当文字大小设置的是比较大的值的时候,文字超出组件大小,且以省略号方式显示;
	2)如果开发者只设置了controlSize,没有设置width和height,`组件宽高自适应文字`,文字不超出组件,并设置最小宽度minWidth和最小高度minHeight;
	3)如果controlSize、width、height接口都设置了,width和height设置的值生效,但如果width和height设置的值小于controlSize设置的最小宽度minWidth和最小高度minHeight,width和height设置的值不生效,宽高仍保持controlSize设置的最小宽度minWidth和最小高度minHeight。
  1. menuItemContentModifier定制Select下拉菜单项内容区的方法。

  2. divider(options: Optional | null) 设置分割线样式,不设置该属性则按“默认值”展示分割线。

  3. font fontColor selectedOptionBgColor selectedOptionFont selectedOptionFontColor optionBgColor optionFont optionFontColor

  4. space(value: Length)设置下拉菜单项的文本与箭头之间的间距。不支持设置百分比。设置为null、undefined,或者小于等于8的值,取默认值。
    arrowPosition
    menuAlign
    optionWidth
    optionHeight
    menuBackgroundColor
    menuBackgroundBlurStyle

Select事件

onSelect(callback: (index: number, value: string) => void)

下拉菜单选中某一项的回调。
示例:

Select([{ value: 'aaa', icon: $r("app.media.selection") },
      { value: 'bbb', icon: $r("app.media.selection") },
      { value: 'ccc', icon: $r("app.media.selection") },
      { value: 'ddd', icon: $r("app.media.selection") }])
      .selected(this.index)
      .value(this.text)
      .font({ size: 16, weight: 500 })
      .fontColor('#182431')
      .selectedOptionFont({ size: 16, weight: 400 })
      .optionFont({ size: 16, weight: 400 })
      .space(this.space)
      .arrowPosition(this.arrowPosition)
      .menuAlign(MenuAlignType.START, {dx:0, dy:0})
      .optionWidth(200)
      .optionHeight(300)
      .onSelect((index:number, text?: string | undefined)=>{
        console.info('Select:' + index)
        this.index = index;
        if(text){
          this.text = text;
        }
      })

在这里插入图片描述

多条件筛选Filter

多条件筛选,帮助用户在大量信息中找到所需内容,应结合具体场景选择合适筛选方式。多条件筛选控件由筛选器悬浮条构成,悬浮条可下拉展示悬浮筛选器。筛选器样式可分为多行可折叠类型与多行列表类型,并可以在筛选器最后一行附加快捷筛选器。
在这里插入图片描述

  1. 首先需要导入模块
import { Filter } from '@kit.ArkUI'

Filter({ multiFilters: Array<FilterParams>, 
additionFilters: FilterParams, 
filterType: FilterType, 
onFilterChanged: (Array<FilterResult>) => void, 
container: ()=> void })
装饰器类型:@Component

在这里插入图片描述

FilterType:

MULTI_LINE_FILTER	0	多行可折叠类型筛选器。
LIST_FILTER	1	多行列表类型筛选器。

Filter支持通用属性,不支持通用事件

// 多条件筛选列表
 private filterParam: Array<FilterParams> = [
 {name: '月份', options: ['全部','1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']},
{name: '年份', options: ['全部','2023','2022','2021','2020','2019','2018','2017','2016','2015','2014','2013','2012','2011','2010']},
{name: '节气', options: ['全部','立春','雨水','惊蛰','春分','清明','谷雨','立夏','小满','芒种','夏至','小暑','大暑','立秋','处暑','白露','秋分','寒露','霜降','立冬','小雪','大雪','冬至','小寒','大寒']}]

// 附加快捷项
private additionParam: FilterParams = { name: '您还可以搜', options: ['运营栏目1','运营栏目2','运营栏目3','运营栏目4','运营栏目5','运营栏目6']}

private arr: number[] = [1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10];
Filter({
    multiFilters: this.filterParam,
    additionFilters: this.additionParam,
    filterType: FilterType.MULTI_LINE_FILTER,
    onFilterChanged: (select: Array<FilterResult>) => {
      console.log('rec filter change')
      for (let filter of select) {
        console.log('name:' + filter.name + ',index:' + filter.index + ',value:' + filter.value)
      }
    }
  })

组合下拉筛选框?

省市区组合下拉筛选框如何实现?

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

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

相关文章

基于SSM的家政服务网站【附源码】

基于SSM的家政服务网站&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统概述 4.2 系统结构 4.3. 数据库设计 4.3.1 数据库实体 4.3.2 数据库设计表 4.4 数据表 第5章 系统详细设计 5.1管理员功能模块 5.2用户功能模块 5.3前…

STM32F407单片机编程入门(二十四) USB口介绍及CDC类虚拟串口通讯详解及源码

文章目录 一.概要二.USB2.0基本介绍及虚拟串口介绍三.STM32F407VET6单片机USB模块框图四.STM32单片机USB从机模式五.STM32F407VET6 USB设备CDC类六.CubeMX配置一个USB虚拟串口收发例程七.CubeMX工程源代码下载八.小结 一.概要 STM32F407VET6 USB虚拟串口是一种采用STM32F407VE…

【测试】什么是需求?

测试的概念&#xff1a;验证软件的特性是否满足用户的需求。软件测试领域&#xff1a;软件测试工程师、软件测试开发工程师 需求的概念 在企业中&#xff0c;经常会听到俩个词&#xff1a;用户需求和软件需求。 例如&#xff1a;开发人员与产品人员出现冲突... 产品同学要求开…

ROG NUC:重塑未来,从“芯”开始

ROG NUC以令人惊叹的紧凑身形、强大配置&#xff0c;从“芯”出发&#xff0c;重塑我们对科技生活的想象&#xff0c;让玩家感受由微缩主机带来的性能风暴。 至强“芯”脏&#xff0c;性能巅峰 ROG NUC至高搭载英特尔酷睿Ultra9处理器&#xff0c;采用先进的制程工艺&#xff…

【C++】STL详解之string类

目录 什么是STL STL的版本 STL的六大组件 STL的缺陷 一.string的定义方式 二. string的插入 1.使用push_back进行尾插 2.使用insert插入 三.string的拼接 四.string的删除 1.使用pop_back进行尾删 2.使用erase进行删除 五.string的查找 1.使用find正向搜索第一个…

设计模式 策略模式(Strategy Pattern)

策略模式简绍 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为设计模式&#xff0c;它使你能在运行时改变对象的行为。该模式定义了一系列的算法&#xff0c;并将每一个算法封装起来&#xff0c;使它们可以相互替换。策略模式让算法独立于使用它的客户而变化。 …

【计网】从零开始掌握序列化 --- 实现网络计算器项目

​​​请各位保持头脑清醒&#xff0c; ​​​读些好书&#xff0c;做点有用的事&#xff0c; ​​​快快乐乐地生活。 ​​​ --- 斯蒂芬金 《肖申克的救赎》--- 从零开始掌握序列化 1 知识回顾2 服务器框架3 客户端框架4 运行测试 1 知识回顾 前面两篇文章学习中基础知识…

CSS 实现文本溢出省略号显示,含单行与多行文本溢出

&#x1f680; 个人简介&#xff1a;某大型国企资深软件研发工程师&#xff0c;信息系统项目管理师、CSDN优质创作者、阿里云专家博主&#xff0c;华为云云享专家&#xff0c;分享前端后端相关技术与工作常见问题~ &#x1f49f; 作 者&#xff1a;码喽的自我修养&#x1f9…

[翟旭发射器]python-推导式-列表list表达式练习

# 简单的列表生成 numbers00[x for x in range(1,11)] print(numbers00) # 带条件的列表生成 numbers01[x for x in range(1,11) if x%20] print(numbers01) # 带表达式的列表生成 numbers10[x**2 for x in range(1,11)] print(numbers10) # 嵌套循环的列表生成 coordinates[(x…

UE4_Niagara基础实例—使用自定义参数

实现的功能&#xff1a;使用自定义的参数来调整粒子远离发射器后粒子大小的变化 效果图&#xff1a; 操作步骤&#xff1a; 1、创建Niagara系统&#xff0c;使用Simple Sprite Burst模板作为新系统的发射器&#xff0c;更名为NS_Custompara。 2、双击打开Niagara系统编辑界面…

Shopee 大促想爆单如何准备?EasyBoss ERP为你准备了一份攻略!

Shopee下半年第二个大促节点——10.10品牌大促即将来到&#xff0c;根据Shopee的官方的数据&#xff0c;9.9大促当天&#xff0c;Shopee Mall单量增至平日4倍。 老板们&#xff0c;准备好自己的热卖爆款冲击10.10大促了吗&#xff1f; 图源&#xff1a;Shopee 为助力大家迎战大…

NetApp EF 系列全闪存阵列 EF600 和 EF300

功能强大且经济实惠的性能 NetApp EF600 全闪存阵列专为需要最高性能的工作负载而设计。NetApp EF300阵列专为大数据分析和数据库等混合工作负载环境而设计。这些NVMe全闪存阵列的性能是以前SAS全闪存阵列的两倍。您可以使用专为高性能工作负载打造的端到端 NVMe 存储平台来加速…

node-rtsp-stream、jsmpeg.min.js实现rtsp视频在web端播放

1. 服务地址&#xff08;私有&#xff09;&#xff1a;https://gitee.com/nnlss/video-node-server 2.node-rtsp-stream 需要安装FFMPEG&#xff1b; 3.给推拉流做了开关&#xff0c;可借助http请求&#xff0c;有更好方式可联系&#xff1b; 4.存在问题&#xff1a; 1&…

Vue中集中常见的布局方式

布局叠加 完整代码最外层的Container设置为relative&#xff0c;内部的几个box设置为absolute <template><div class"container"><div class"box box1">Box 1</div><div class"box box2">Box 2</div><d…

导出Power bi中的Measure

工作中做交接文档时&#xff0c;有时需要导出Power BI中所有度量值&#xff0c;这时可以下载两个工具。 一 &#xff0c; 下载工具&#xff1a; 1 &#xff0c; DaxStudio&#xff1a; http://daxstudio.org/ 2&#xff0c; Vertipaq Analyzer&#xff1a; https://www.sqlbi.c…

1.1 elasticsearch分布式集群基本搭建(centos7.x + elaticsearch7.11.1)

【1】分布式分片集群基础概念 【1.1】ES的分布式集群有什么用&#xff1f; 高可用 高可用(High Availability)是分布式系统架构设计中必须考虑的因素之一&#xff0c;它通常是指&#xff0c;通过设计减少系统不能提供服务的时间。如果系统每运行100个时间单位&#xff0c;会有…

半导体供应链系统在智能时代的主要作用

在智能科技日新月异的今天&#xff0c;半导体作为信息技术的基石&#xff0c;其供应链系统的稳定与高效直接关系到全球科技产业的脉动。智能时代的浪潮下&#xff0c;半导体供应链系统不仅是技术的输送带&#xff0c;更是推动产业创新、促进经济转型升级的关键力量。本文我们就…

将Uni.app打包好的apk放到IIS服务器上的详细流程

第一步&#xff1a;打开IIS服务器&#xff0c;点击MIME类型 第二步&#xff1a;点击添加 第三步&#xff1a;文件扩展名填写&#xff1a;.apk &#xff0c; MIME 类型填写&#xff1a;application/vnd.android.package-archive 第四步&#xff1a;添加成功后重启IIS服务器 第五…

【大模型实战篇】一种关于大模型高质量数据的处理方法-无标注数据类别快速识别及重复数据检测(加权向量-卷积神经网络-聚类算法结合)

1. 背景介绍 大模型的能力很大程度上依赖于高质量的数据&#xff0c;在之前的一篇文章《高质量数据过滤及一种BoostedBaggingFilter处理方法的介绍》中&#xff0c;我们介绍了大模型的数据处理链路&#xff0c;本文继续关注在高质量数据的模块。 本文所要介绍的处理方法&…

C语言课程设计题目(24个选题)

C语言课程设计题目 题目一&#xff1a;职工信息管理系统设计题目二&#xff1a;图书信息管理系统设计题目三&#xff1a;图书管理系统设计题目四&#xff1a;实验设备管理系统设计题目五&#xff1a;西文下拉菜单的设计题目六&#xff1a;学生信息管理系统设计题目七&#xff1…