拖拽事件extraParams返回空
按要求拖拽事件放在ListItem组件上执行。
@Entry  
@Component  
struct Test {  
  @State message: string = 'Hello World'  
  @State arr1: string[] = []  
  aboutToAppear(): void {  
    for (let i = 0; i < 50; i++) {  
      this.arr1.push(i + "")  
    }  
  }  
  private scrollerForScroll: Scroller = new Scroller()  
  swapElementsAtIndex(index1: number, index2: number): void {  
    if (index1 < 0 || index1 >= this.arr1.length || index2 < 0 || index2 >= this.arr1.length) {  
      return  
    }  
    const temp = this.arr1[index1];  
    this.arr1[index1] = this.arr1[index2];  
    this.arr1[index2] = temp;  
  }  
  build() {  
    Column() {  
      Text('标题').margin({ top: 50 }).height(20)  
      Scroll(this.scrollerForScroll) {  
        List({ initialIndex: 0 }) {  
          ForEach(this.arr1, (item: string, index: number) => {  
            ListItem() {  
              Column() {  
                Text('' + item)  
                  .width('100%')  
                  .height(40)  
                  .fontSize(16)  
                  .textAlign(TextAlign.Center)  
                  .borderRadius(10)  
                  .backgroundColor(0xFFFFFF)  
              }.borderColor(Color.Red).borderWidth(1)  
            }  
            .draggable(true)  
            .onDragEnd((event?: DragEvent,extraParams?: string) => {  
              if (event &&  extraParams) {  
                const extraObj =  JSON.parse(extraParams) as Record<string, number>  
                let selectedIndex = extraObj['selectedIndex']  
                let insertIndex = extraObj['insertIndex']  
                this.swapElementsAtIndex(selectedIndex,insertIndex)  
              }  
            })  
          }, (item: string) => item)  
        }  
      }  
    }  
  }  
}
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 HarmonyOS resourceDir返回空值 
702浏览  • 1回复 待解决
HarmonyOS getRawFileContentSync读取rawfile下的文件返回空 
1123浏览  • 1回复 待解决
如何给Navigation组件的分隔线增加拖拽事件以支持拖拽功能 
3511浏览  • 1回复 待解决
HarmonyOS 元素使用了动画事件,会监听不到手势拖拽。去掉动画事件可以监听到手势拖拽。 
1000浏览  • 1回复 待解决
#鸿蒙通关秘籍#怎么处理鸿蒙系统的拖拽事件? 
1171浏览  • 1回复 待解决
Image默认支持拖拽事件,是否可以通过配置禁用? 
1316浏览  • 1回复 待解决
HarmonyOS  返回及侧滑返回无法拦截事件 
1732浏览  • 1回复 待解决
HarmonyOS CustomDialogController可否拦截返回事件? 
1405浏览  • 1回复 待解决
HarmonyOS 页面返回事件如何监听 
1141浏览  • 1回复 待解决
HarmonyOS RN如何拦截返回事件 
795浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中处理拖拽悬浮窗的触摸事件? 
1276浏览  • 1回复 待解决
HarmonyOS 子窗口页面返回事件无效 
838浏览  • 1回复 待解决
返回按钮是否可以自定义事件? 
1238浏览  • 1回复 待解决
HarmonyOS page中如何获取返回键事件? 
1246浏览  • 1回复 待解决
HarmonyOS Grid拖拽,让部分item不响应拖拽 
1199浏览  • 1回复 待解决
拖拽时怎么设置当前拖拽项目数 
2113浏览  • 1回复 待解决
HarmonyOS 侧滑返回事件拦截与绑定 
3669浏览  • 1回复 待解决
华为事件通知接口返回10008错误码 
10951浏览  • 2回复 待解决
HarmonyOS 子窗口如何阻止物理返回事件 
1232浏览  • 1回复 待解决
HarmonyOS 怎么监听Entry页面的滑动返回或物理返回按键的点击事件 
2935浏览  • 1回复 待解决
HarmonyOS list的拖拽不能拖拽到屏幕外面么? 
1522浏览  • 1回复 待解决
HarmonyOS  如何监听返回键事件,实现连按两次返回,提示退出应用 
6319浏览  • 2回复 待解决
在容器组件嵌套的场景下,如何解决手势拖拽事件出现错乱的问题 
2988浏览  • 1回复 待解决
图片默认是可拖拽的,如何设置为不可拖拽 
3703浏览  • 1回复 待解决





















可以直接使用List组件自带的拖拽事件onItemDragStart、onItemDrop
参考demo:
也可以使用手势事件实现拖拽效果。
参考demo: