کشیدن و رها کردن را فعال کنید

روش نوشتن را امتحان کنید
Jetpack Compose ابزار رابط کاربری پیشنهادی برای اندروید است. یاد بگیرید که چگونه از کشیدن و رها کردن در Compose استفاده کنید.

چارچوب کشیدن و رها کردن اندروید به شما امکان می‌دهد قابلیت‌های کشیدن و رها کردن تعاملی را به برنامه خود اضافه کنید. با کشیدن و رها کردن، کاربران می‌توانند متن، تصاویر، اشیاء و هر محتوایی را که می‌تواند توسط یک URI نمایش داده شود، از یک View به نمای دیگر در یک برنامه یا بین برنامه‌ها در حالت چند پنجره‌ای کپی یا منتقل کنند.

رشته متن و تصویر در حال کشیدن و رها کردن در یک برنامه هستند.رشته متن و تصویر در حالت تقسیم صفحه نمایش، بین برنامه‌ها کشیده و رها می‌شوند.
شکل ۱. کشیدن و رها کردن درون یک برنامه
شکل ۲. کشیدن و رها کردن بین برنامه‌ها

این چارچوب شامل یک کلاس رویداد کشیدن، شنونده‌های کشیدن و کلاس‌ها و متدهای کمکی است. اگرچه در درجه اول برای فعال کردن انتقال داده‌ها طراحی شده است، می‌توانید از این چارچوب برای سایر اقدامات رابط کاربری استفاده کنید. به عنوان مثال، می‌توانید برنامه‌ای ایجاد کنید که وقتی کاربر یک آیکون رنگی را روی آیکون دیگری می‌کشد، رنگ‌ها را مخلوط می‌کند. با این حال، بقیه سند، چارچوب کشیدن و رها کردن را در زمینه انتقال داده‌ها شرح می‌دهد.

نمای کلی

چند عنصر در فرآیند کشیدن دخیل هستند.

  1. منبع کشیدن: نمای نقطه شروع فرآیند کشیدن و رها کردن.

  2. هدف رها کردن: نمایی که می‌تواند داده‌های درگ را بپذیرد.

  3. سایه کشیدن : سایه کشیدن، نمایشی از داده‌های در حال کشیدن است که برای کاربران قابل مشاهده است.

  4. رویدادهای کشیدن (Drag events) : همانطور که کاربر سایه کشیدن (drag shadow) را روی طرح‌بندی برنامه حرکت می‌دهد، سیستم رویدادهای کشیدن را به شنونده‌های رویداد کشیدن و متدهای فراخوانی مرتبط با اشیاء View در طرح‌بندی ارسال می‌کند.

عملیات کشیدن و رها کردن زمانی شروع می‌شود که کاربر یک حرکت رابط کاربری انجام می‌دهد که برنامه شما آن را به عنوان سیگنالی برای شروع کشیدن داده‌ها تشخیص می‌دهد. در پاسخ، برنامه به سیستم اطلاع می‌دهد که عملیات کشیدن و رها کردن در حال شروع است. سیستم برای دریافت سایه کشیدن و رها کردن، برنامه شما را فراخوانی می‌کند و آن را در طول فرآیند کشیدن و رها کردن به کاربران نشان می‌دهد.

همانطور که کاربر سایه کشیدن را روی طرح‌بندی برنامه حرکت می‌دهد، سیستم رویدادهای کشیدن را به شنوندگان رویداد کشیدن و متدهای فراخوانی مرتبط با اشیاء View در طرح‌بندی ارسال می‌کند. اگر کاربر سایه کشیدن را روی یک هدف رها کردن رها کند، سیستم داده‌ها را به آن ارسال می‌کند. عملیات کشیدن و رها کردن زمانی پایان می‌یابد که کاربر سایه کشیدن را رها کند، چه سایه کشیدن روی یک هدف رها کردن باشد و چه نباشد.

مباحث

مفاهیم کلیدی
فرآیند کشیدن و رها کردن را درک کنید.
DropHelper برای کشیدن و رها کردن ساده
یاد بگیرید چگونه کشیدن و رها کردن را با DropHelper پیاده‌سازی کنید.
پیاده‌سازی کشیدن و رها کردن با نماها
روش دیگر، پیاده‌سازی قابلیت کشیدن و رها کردن (drag and drop) با نماهای اندروید است، این به توسعه‌دهندگان اجازه می‌دهد کنترل بیشتری روی جزئیات داشته باشند.
کشیدن و رها کردن در حالت چند پنجره‌ای
پشتیبانی از کشیدن و رها کردن در حالت چند پنجره‌ای، به اشیاء اجازه می‌دهد تا در برنامه‌های مختلف جابجا شوند.

منابع اضافی