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

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

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

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

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

סקירה כללית

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

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

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

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

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

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

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

נושאים

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

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