HarmonyOS 筛选控件缺失

使用select或者CustomDialog并不能实现这个筛选功能,是否有能力实现该筛选功能?

HarmonyOS
20h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

参考示例:

import { ComponentContent, window } from '@kit.ArkUI';
import { BusinessError } from '@kit.BasicServicesKit';
import { common } from '@kit.AbilityKit';

class Params {
  arr: number[] = []

  constructor(arr: number[]) {
    this.arr = arr;
  }
}

@Builder
function buildText(params: Params) {
  Column() {
    List({ space: 20, initialIndex: 0 }) {
      ForEach(params.arr, (item: number) => {
        ListItem() {
          Text('' + item)
            .width('100%')
            .height(100)
            .fontSize(16)
            .textAlign(TextAlign.Center)
            .borderRadius(10)
            .backgroundColor(0xFFFFFF)
        }
      }, (item: string) => item)
    }
    .listDirection(Axis.Vertical) // 排列方向
    .scrollBar(BarState.Off)
    .friction(0.6)
    .divider({
      strokeWidth: 2,
      color: 0xFFFFFF,
      startMargin: 20,
      endMargin: 20
    }) // 每行之间的分界线
    .edgeEffect(EdgeEffect.Spring) // 边缘效果设置为Spring
    .onScrollIndex((firstIndex: number, lastIndex: number, centerIndex: number) => {
      console.info('first' + firstIndex)
      console.info('last' + lastIndex)
      console.info('center' + centerIndex)
    })
    .onScroll((scrollOffset: number, scrollState: ScrollState) => {
      console.info(`onScroll scrollState = ScrollState` + scrollState + `, scrollOffset = ` + scrollOffset)
    })
    .width('90%')
  }
  .width('100%')
  .height(500).backgroundColor(Color.Red)
  .padding({ top: 5 })
}

@Entry
@Component
struct Parent {
  arr: Array<number> = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  @State bgColor: string = '#FFFFFF'

  build() {
    Column() {
      Column() {
        Button("click").onClick(() => {
          let uiContext = this.getUIContext();
          let promptAction = uiContext.getPromptAction();
          let contentNode =
            new ComponentContent((uiContext as UIContext), wrapBuilder(buildText), new Params(this.arr));
          try {
            promptAction.openCustomDialog(contentNode, {
              isModal: false,
              onWillDismiss: () => {
                this.bgColor = '#FFFFFF'
                promptAction.closeCustomDialog(contentNode)
              }
            });
          } catch (error) {
            let message = (error as BusinessError).message;
            let code = (error as BusinessError).code;
            console.error(`OpenCustomDialog args error code is ${code}, message is ${message}`);
          }
          ;

          this.bgColor = '#50C4C0C0'
        })
      }

      Column() {
        Text("这是内容")
      }.width('100%').height(800).backgroundColor(this.bgColor)
    }
  }
}
分享
微博
QQ
微信
回复
17h前
相关问题
轻量系统应用开发汉字缺失
4114浏览 • 1回复 待解决
缺失getcontext函数导致breakpad编译失败
954浏览 • 1回复 待解决
HarmonyOS 需要一个筛选页面的demo
381浏览 • 1回复 待解决
HarmonyOS 自定义时间控件和日期控件
348浏览 • 1回复 待解决
HarmonyOS saveButton控件问题
39浏览 • 1回复 待解决
HarmonyOS 刷新控件问题
172浏览 • 1回复 待解决
HarmonyOS 短信校验控件
218浏览 • 1回复 待解决
HarmonyOS select控件高度
17浏览 • 1回复 待解决
HarmonyOS 获取控件坐标
62浏览 • 1回复 待解决
HarmonyOS Tab控件咨询
84浏览 • 1回复 待解决
HarmonyOS 有没有密码控件
365浏览 • 1回复 待解决
HarmonyOS SegmentButton控件修改高度
15浏览 • 1回复 待解决
HarmonyOS 基础控件封装想法
17浏览 • 1回复 待解决
HarmonyOS 如何设置控件样式?
328浏览 • 1回复 待解决
HarmonyOS Tabs控件fadingEdge问题
418浏览 • 1回复 待解决