使用英语阅读

通过


在 Xamarin 中拖放。Android

拖放支持可确保在使用 Surface Duo 支持的所有不同输入类型时都有一个出色的用户体验。

此示例演示如何按照 Android 拖放指南,在 Android 应用中实现拖放。

sample app UI using drag-and-drop

密钥值

拖放允许用户在应用的各个部分之间或在两个屏幕上的不同应用之间轻松共享数据。

可从此模式中受益的应用类型

  • 包含文本或图像的应用。

有关详细信息,请参阅“双屏设备简介”中的拖放一节。

试用我们的示例

获取GitHub上的拖放示例

源代码概述

这些代码片段显示了拖放操作的关键步骤。

  1. 将 dragListener 附加到要放置的视图。

    View.Drag += View_Drag;
    
  2. 在 onDrag() 中实现 ACTION_DROP

    void View_Drag(object sender, View.DragEventArgs e)
    {
        if (e.Event.Action == DragAction.Drop)
        {
            e.Handled = true;
            // ...
        }
    }
    
  3. 从 DragEvent 获取 URI

    e.Event.ClipData.GetItemAt(0).Uri;
    
  4. 请求对此 URI 的权限

    RequestDragAndDropPermissions(e.Event);
    
  5. 向 ContentProvider 查询以提取放置的项

    var metadata = ContentResolver.Query(uri, new [] { OpenableColumns.DisplayName, OpenableColumns.Size}, null, null, null))
    var file = ContentResolver.OpenFileDescriptor(uri, mode: "r");