הפעלת גרירה ושחרור

כדאי לנסות את הכתיבה
‫Jetpack Compose היא ערכת הכלים המומלצת לבניית ממשק משתמש ל-Android. איך גוררים ומשחררים ב-Compose

המסגרת של Android לגרירה ולשחרור מאפשרת להוסיף לאפליקציה יכולות אינטראקטיביות של גרירה ושחרור. באמצעות גרירה ושחרור, משתמשים יכולים להעתיק או להעביר טקסט, תמונות, אובייקטים וכל תוכן שאפשר לייצג באמצעות URI, מView אחד לאחר בתוך אפליקציה, או בין אפליקציות במצב ריבוי חלונות.

מחרוזת טקסט ותמונה נגררות ומועברות בתוך אפליקציה. מחרוזת טקסט ותמונה נגררות ומועברות בין אפליקציות במצב מסך מפוצל.
איור 1. גוררים ומשחררים בתוך אפליקציה.
איור 2. גוררים ושחררים בין אפליקציות.

המסגרת כוללת מחלקה של אירועי גרירה, drag listeners ומחלקות ושיטות עזר. למרות שהמסגרת הזו מיועדת בעיקר להעברת נתונים, אפשר להשתמש בה גם לפעולות אחרות בממשק המשתמש. לדוגמה, אפשר ליצור אפליקציה שמערבבת צבעים כשהמשתמש גורר סמל צבע מעל סמל אחר. עם זאת, בחלקים אחרים של המסמך מתואר מסגרת גרור-ושחרר בהקשר של העברת נתונים.

סקירה כללית

יש כמה רכיבים שמעורבים בתהליך הגרירה.

  1. גרירת מקור: תצוגת נקודת ההתחלה של תהליך הגרירה וההזזה.

  2. יעד השחרור: תצוגה שיכולה לקבל את נתוני הגרירה.

  3. צללית גרירה: צללית גרירה היא ייצוג של הנתונים שנגררים, והיא גלויה למשתמשים.

  4. גרירת אירועים: כשהמשתמש מזיז את הצללית של הגרירה מעל הפריסה של האפליקציה, המערכת שולחת אירועי גרירה למאזיני אירועי הגרירה ולשיטות הקריאה החוזרת שמשויכות לאובייקטים View בפריסה.

פעולת גרירה מתחילה כשהמשתמש מבצע תנועת ממשק משתמש שהאפליקציה מזהה כאות להתחלת גרירת נתונים. בתגובה, האפליקציה מודיעה למערכת שתהליך הגרירה וההעברה מתחיל. המערכת מבצעת קריאה חוזרת לאפליקציה כדי לקבל צללית של הגרירה ולהציג אותה למשתמשים במהלך תהליך הגרירה וההעברה.

כשהמשתמש מעביר את הצללית של הפריט הגרור מעל הפריסה של האפליקציה, המערכת שולחת אירועי גרירה אל המאזינים לאירועי גרירה ושיטות הקריאה החוזרת שמשויכים לאובייקטים View בפריסה. אם המשתמש משחרר את הצללית של הגרירה מעל יעד השחרור, המערכת שולחת אליו את הנתונים. פעולת הגרירה והשחרור מסתיימת כשהמשתמש משחרר את הצללית של הפריט הגרור, בין אם הצללית נמצאת מעל אזור השחרור ובין אם לא.

נושאים

מושגי מפתח
הסבר על תהליך הגרירה וההזזה
DropHelper לגרירה ולשחרור פשוטים יותר
איך מטמיעים גרירה ושחרור באמצעות DropHelper
הטמעה של גרירה ושחרור בתצוגות מפורטות
אפשרות נוספת היא להטמיע גרירה ושחרור באמצעות תצוגות של Android, כדי לאפשר למפתחים לשלוט יותר בפרטים.
גרירה ושחרור במצב ריבוי חלונות
תמיכה בגרירה ושחרור במצב ריבוי חלונות, שמאפשרת להעביר אובייקטים בין אפליקציות שונות.

מקורות מידע נוספים