在 Xamarin 中拖放。Android
拖放支持可确保在使用 Surface Duo 支持的所有不同输入类型时都有一个出色的用户体验。
此示例演示如何按照 Android 拖放指南,在 Android 应用中实现拖放。
拖放允许用户在应用的各个部分之间或在两个屏幕上的不同应用之间轻松共享数据。
- 包含文本或图像的应用。
有关详细信息,请参阅“双屏设备简介”中的拖放一节。
获取GitHub上的拖放示例
这些代码片段显示了拖放操作的关键步骤。
将 dragListener 附加到要放置的视图。
View.Drag += View_Drag;
在 onDrag() 中实现 ACTION_DROP
void View_Drag(object sender, View.DragEventArgs e) { if (e.Event.Action == DragAction.Drop) { e.Handled = true; // ... } }
从 DragEvent 获取 URI
e.Event.ClipData.GetItemAt(0).Uri;
请求对此 URI 的权限
RequestDragAndDropPermissions(e.Event);
向 ContentProvider 查询以提取放置的项
var metadata = ContentResolver.Query(uri, new [] { OpenableColumns.DisplayName, OpenableColumns.Size}, null, null, null)) var file = ContentResolver.OpenFileDescriptor(uri, mode: "r");