سفارش تبلیغ
صبا ویژن

آموزش درگ و دراپ در برنامه نویسی اندروید

چهارچوب drag و drop اندروید به کاربران شما اجازه می دهد که با استفاده از یک حرکت گرافیکی درگ و دراپ؛ داده های مورد نظرشان را از یک View به View دیگر در صفحه بندی فعلی منتقل کنند. (درگ کردن به معنای انتخاب یک آیتم روی صفحه دستگاه و حرکت آن به یک نقطه ی دیگر می باشد؛ دراپ نیز به معنای رها کردن آیتم در آن نقطه مورد نظر است).

درگ و دراپ کردن view به نماهای دیگر یا نماهای گروهی به شکل API 11 پشتیبانی شده است. این چارچوب برای پشتیبانی از عملکرد درگ و دراپ، شامل سه مؤلفه ی بسیار مهم زیر می باشد:

  • درگ کردن کلاس رویدادها
  • درگ کردن مخاطبین
  • کلاس ها و متد های کمک کننده

فرآیند Drag/Drop

اساساً چهار مرحله یا حالت در فرآیند درگ و دراپ وجود دارد.

  • شروع – این رویداد هنگامی رخ می دهد که شروع به درگ کردن یک آیتم در یک صفحه بندی می نمایید، اپلیکیشن شما متد startDrag() را فراخوانی می کند تا به سیستم بگوید که درگ کردن را شروع کند. آرگومان های درون متد startDrag() داده هایی را که می توان درگ نمود، فراهم می آورد. همچنین متادیتا برای این داده ها و نیز کال بک برای ترسیم سایه درگ را فراهم می کند.

این سیستم ابتدا با تماس با استفاده از کال بک به اپلیکیشن شما پاسخ می دهد تا سایه درگ کردن دریافت شود. سپس سیستم سایه درگ کردن را روی دستگاه نمایش می دهد.

در مرحله بعد ، سیستم یک رویداد درگ با نوع عمل ACTION_DRAG_STARTED را برای مخاطبین رویداد درگ ثبت شده برای همه اشیاء View در صفحه بندی فعلی، ارسال می کند.

برای ادامه دادن به دریافت رویدادهای درگ؛ از جمله رویداد دراپ احتمالی، یک رویداد مخاطب رویداد درگ باید true را بازگرداند؛ اما اگر مخاطب رویداد درگ؛ false را برگرداند؛ سپس رویدادهای درگ برای عملکرد فعلی را دریافت نمی کند؛ تا زمانی که سیستم یک رویداد درگ با نوع فعالیت ACTION_DRAG_ENDED را اراسال نماید.

  • ادامه فرآیند- کاربر درگ کردن را ادامه می دهد. سیستم فعالیت ACTION_DRAG_ENTERD و به دنبال آن ACTION_DARG_LOCATION را به مخاطب ثبت شده برای رویداد درگ ارسال می کند تا View که در آن درگ نقطه درگ کردن وارد می شود؛ مشخص نماید. مخاطب ممکن است تصمیم بگیرد که ظاهر شیء View را در پاسخ به رویداد تغییر بدهد، همچنین می تواند با برجسته کردن View آن واکنش نشان بدهد.

بعد از آن که کاربر سایه درگ را به خارج از کادر محدوده View منتقل کرد؛ مخاطب رویداد درگ، یک عمل ACTION_DRAG_EXITD را دریافت می کند.

  • دراپ شدن- کاربر آیتم درگ شده را درون کادر محدوده ی View رها می کند. سیستم به مخاطب شیء View یک رویداد درگ با نوع عمل ACTION_DROP ارسال می کند.
  • پایان- دقیقاً بعد از نوع عمل ACTION_DROP سیستم یک رویداد درگ را با نوع عمل ACTION_DRAG_ENDED ارسال می کند تا نشان بدهد که عملیات درگ کردن تمام شده است.

ادامه مطلب...