
הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על Fragment» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לנושא חדש, שהוא די נושא גדול, שנקרא Fragments. קודם כל, מה זה Fragments? Fragments זה בעצם יחידת UI, פיסת UI קטנה, שאנחנו יכולים לשים על Activity.
אנחנו יכולים לשלב כמה Fragments בתוך Activity אחת, ואנחנו יכולים לקחת Fragments ולהשתמש איתה על פני כמה Activities. בואו קודם כל נראה איזשהו מקרה לדוגמה.
נניח שיש לנו כאן איזשהו מכשיר נייד רגיל, ואנחנו רואים בצד שמאל את המכשיר שמציג איזושהי רשימה של פריטים. כאשר אנחנו לוחצים על פריט של הרשימה, אנחנו רוצים להציג מידע לגבי אותו פריט, ולכן במקרה הזה אנחנו רוצים להחליף את המסך הזה במסך אחר שמציג מידע לגבי אותו פריט.
אז כאן אנחנו רואים שיש לנו שני אקטיביטיזם. יש לנו Activity A שמכילה את הרשימה עצמה, ויש לנו את Activity B שמכילה את המידע לגבי אותו פריט, וכאשר אנחנו לוחצים על הפריט פשוט מציגים עוד Activity.
עכשיו, כל הסיפור הזה אנחנו רואים שמתבצע במכשיר נייד רגיל החלוטין. מה קורה אם אנחנו רוצים לבצע משהו דומה בטאבלטים, ממש שה-UI ייראה אותו הדבר, אבל ששתי פיסות ה-UI האלה יופיעו על גבי אותה activity.
זאת אומרת, יש לנו פה activity אחת בלבד, שבצד שמאל שלה מכילה את הרשימה, וכאשר לוחצים על פריט, פתאום אנחנו רואים ממש בצד ימין של אותה activity את המידע לגבי אותו פריט.
אז כאן אנחנו רואים שאנחנו רוצים לקחת פיסות UI ולהשתמש באותן פיסות בקונטקסטים שונים או במקרים שונים או בתצוגות שונות. אז בכדי שאנחנו לא נצטרך לבנות עוד פעם את פיסות ה-UI האלה עבור כל מיני לארטים שונים, מה שאנחנו יכולים לעשות זה לקחת על ActivityA Fragment ובואו אנחנו רואים שאנחנו קוראים לפרגמנט הזאת FragmentA
ועל activity B פה במכשיר הנייד fragment B ואז אנחנו יכולים פשוט לבנות layout שמותאם לטאבלט וב layout שמותאם לטאבלט אנחנו לוקחים activity 1 בלבד כאן אנחנו רואים שהיא נקראת activity A ואנחנו שמים על activity A גם את fragment A וגם את fragment B וכך אנחנו בעצם לא שכפלנו את כל פיסות ה-UI את הרכיבים עצמם לדוגמה את הרשימת פריטים
לדוגמה כאן כותרת או כאן מידע לגבי הפריט אנחנו לא שכפלנו את זה עבור כל layout בנפרד הרעיון הגיע באמת כאשר רצו לבצע תצוגות דומות עבור מכשירים רגילים מול טאבלטים מכאן הגיע רעיון של fragments אם כך שימוש בפרגמנט מאפשר לנו לבנות את ה-UI שלנו על גבי אותה יחידת פרגמנט ואז לשים את הפרגמנט איפה שאנחנו רוצים וכך אנחנו יכולים לשכפל את ה-UI הזה בכל מיני מקומות
מידע נוסף בנוגע לפרגמנט פרגמנט יכולה לייצג גם איזושהי התנהגות באקטיביטי לדוגמה פרגמנט שרק שומר את מידע לדוגמה איזושהי פרגמנט שרק מבצעת איזשהו חישוב אבל הדברים האלה הם קצת יותר נדירים ברוב המקרים פרגמנט תחיל UI לפרגמנט יש life cycle משלה בנוסף לlife cycle של האקטיביטי
פרגמנט יכולה לקבל input events מהיוזר כמובן כי זה ממש רכיב UI אנחנו יכולים להוסיף פרגמנט, להחליף פרגמנט