如何使用 ArkUI 构建拖放功能?

阅读 646
1 个回答

在 ArkUI 中,拖放功能可以通过 DragDrop API 实现。下面是一个简单的示例:

  1. 设置拖动源(DragSource)
    使用 DragSource 组件,定义可以被拖动的对象,并将其与拖放操作绑定。
import { DragSource, DropTarget } from '@ohos/ui/drag';

export default {
  render() {
    return (
      <DragSource onDragStart={this.handleDragStart}>
        <Text>Drag Me</Text>
      </DragSource>
    );
  },
  methods: {
    handleDragStart(event) {
      // 设置拖动的数据,包含目标的标识符等信息
      event.dataTransfer.setData('text', 'Dragged Content');
    }
  }
};
  1. 设置目标区域(DropTarget)
    使用 DropTarget 组件接收被拖动的元素,并实现拖放时的响应行为。
export default {
  render() {
    return (
      <DropTarget onDrop={this.handleDrop}>
        <Text>Drop Here</Text>
      </DropTarget>
    );
  },
  methods: {
    handleDrop(event) {
      const droppedData = event.dataTransfer.getData('text');
      console.log('Dropped content:', droppedData);
    }
  }
};

注意事项:

  • 在拖动过程中,可以使用 onDragOver 事件来阻止默认行为,使目标区域允许放置。
  • 可以通过 event.dataTransfer 来存取拖动的数据,并传递给目标区域。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进