#鸿蒙通关秘籍#如何在HarmonyOS NEXT中实现List组件内的子组件拖拽交换?

HarmonyOS
6天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
星辰绘VR

在HarmonyOS NEXT中,实现List组件内的子组件拖拽互换可以按照下面步骤操作:

  1. ListItem中使用onDragStart()设置拖拽开始时的行为,隐藏当前拖拽子组件的原位置图标。

    ListItem() { 
      ...
    }
    .onDragStart(() => {
      item.visible = false;
    })
    
  2. List组件中使用onTouch()回调来记录目标位置子组件的索引值。

    .onTouch((event: TouchEvent) => {
      if (event.type === TouchType.Down) {
        this.dragIndex = index;
      }
    })
    
  3. onDrop()方法中,解析传递的拖拽信息,获取子组件原位置的索引值,并使用changeIndex()方法交换两个子组件的位置,同时显示拖拽结束位置的子组件。

    .onDrop((event: DragEvent, extraParams: string) => {
      let jsonString: JsonObjType = JSON.parse(extraParams) as JsonObjType;
      this.changeIndex(this.dragIndex, jsonString.insertIndex);
      this.appInfoList[jsonString.insertIndex].visible = true;
    })
    

通过这些步骤实现了在List组件中对子组件进行拖拽交换的功能。

分享
微博
QQ
微信
回复
6天前
相关问题