Перетаскивание
Поддержка перетаскивания расширяет возможности пользовательского интерфейса, позволяя перемещать все типы входных данных, поддерживаемых Surface Duo.
В этом примере показано, как реализовать перетаскивание в приложении Android.
Значение ключа
Перетаскивание позволяет пользователю без усилий перемещать данные в пределах одного приложения или между разными приложениями на двух экранах.
Типы приложений с поддержкой этого режима:
- Приложения, содержащие текст или изображения.
См. сведения о возможности перетаскивания в руководстве по использованию двухэкранных устройств.
Ознакомьтесь с нашим примером
Получите пример с возможностью перетаскивания на GitHub.
Общие сведения об исходном коде
В этих фрагментах кода показано, как реализовать возможность перетаскивания.
Свяжите dragListener с целевым представлением.
View.setOnDragListener();
Реализуйте ACTION_DROP в onDrag().
public boolean onDrag(View v, DragEvent event) { switch (event.getAction()) { case DragEvent.ACTION_DROP: return true; } }
Получите URI из DragEvent.
DragEvent.getClipData().getItemAt().getUri();
Запросите разрешения для этого URI.
requestDragAndDropPermissions(DragEvent);
Создайте запрос к ContentProvider, чтобы получить перетаскиваемый элемент.
File Metadata : ContentResolver.query( uri, new String[]{OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE}, null, null, null)) Actual file : ContentResolver.openFile(uri)