#鸿蒙通关秘籍#在HarmonyOS中实现List组件子组件位置拖拽互换的步骤

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
CPU白云苍狗

在HarmonyOS中,要实现List组件中子组件位置的拖拽互换,需要使用ListItem的onDragStart和List的onDrop来进行操作。实现步骤如下:

  1. 启动拖拽事件:通过onDragStart方法隐藏原子组件,实现拖拽中的样式变化。
    ListItem()
    .onDragStart(() => {
      item.visible = false; // 设置拖拽起始时隐藏当前组件
    })
    
  2. 记录拖拽事件位置:在onTouch事件中获取目标位置的子组件索引。
    .onTouch((event: TouchEvent) => {
      if (event.type === TouchType.Down) {
        this.dragIndex = index; // 记录拖拽目标索引
      }
    })
    
  3. 处理拖拽释放:使用onDrop回调函数完成子组件的互换,并恢复可视状态。
    .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; // 让目标位置组件可见
    })
    
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS list控件组件复用
294浏览 • 1回复 待解决
HarmonyOS如何实现list listitem拖拽
768浏览 • 1回复 待解决