鸿蒙5.0版开发:ArkTS高级组件-@ohos.arkui.advanced.Filter (多条件筛选)

114 篇文章 0 订阅
110 篇文章 0 订阅

往期鸿蒙全套实战文章必看:


@ohos.arkui.advanced.Filter (多条件筛选)

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

说明:

该组件从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

导入模块

import { Filter } from '@ohos.arkui.advanced.Filter'

子组件

属性

支持通用属性

Filter

Filter({ multiFilters: Array<FilterParams>, additionFilters: FilterParams, filterType: FilterType, onFilterChanged: (Array<FilterResult>) => void, container: ()=> void })

装饰器类型:@Component

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

名称参数类型必填装饰器类型说明
multiFiltersArray<FilterParams>@Prop多条件筛选列表。
additionFiltersFilterParams@Prop附加快捷筛选项。
filterTypeFilterType@Prop筛选器的样式类型。
onFilterChanged(filterResults: Array<FilterResult>) => void-用户点击后的回调事件。回调函数的参数为选中的筛选项结果列表。
container()=>void@BuilderParam筛选结果展示区域自定义内容,通过尾随闭包形式传入。

FilterParams

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

名称类型必填说明
nameResourceStr筛选项维度名称。
optionsArray<ResourceStr>筛选项维度可选项列表。

FilterType

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

名称说明
MULTI_LINE_FILTER0多行可折叠类型筛选器。
LIST_FILTER1多行列表类型筛选器。

FilterResult

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

名称类型必填说明
nameResourceStr筛选项维度名称。
indexnumber该维度筛选项选中项目的索引值。
valueResourceStr该维度筛选项选中项目的值。

事件

不支持通用事件

示例

import { Filter, FilterParams, FilterResult, FilterType } from '@ohos.arkui.advanced.Filter'

@Entry
@Component
struct Index {
  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','2009','2008']},
    {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];
  build() {
    Column() {
      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)
          }
        }
      }){
        List({ initialIndex: 0 }) {
          ForEach(this.arr, (item:string, index: number) => {
            ListItem() {
              Text(item.toString())
                .width("100%")
                .height(100)
                .fontSize(16)
                .textAlign(TextAlign.Center)
                .borderRadius(10)
                .backgroundColor(Color.White)
                .margin({ top:10, bottom: 10 })
            }
          })
        }.backgroundColor(Color.Gray)
        .padding({ left: 20, right: 20 })
      }
    }
    .height('100%')
    .width('100%')
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值