1 of 22

Fragment

2 of 22

מדובר ב"רכיב מורכב מרכיבים",

ממש דומה לאקטיביטי.

אלא שאקטיביטי יכולה

להופיע על המסך ללא פרגמנט,

ופרגמנט יכול להופיע על המסך

רק כחלק של אקטיביטי

3 of 22

אפשר לצור בתוך אקטיביטי

מספר פרגמנטים ולהציג אותם

כולם בו זמני על המסך.

אפשר לצור מספר פרגמנטים

שבאותו מקום על המסך

יתחלפו אחד עם השני.

4 of 22

מספר פרגמנטים

בו זמני על אותו מסך

5 of 22

פרגמנטים מתחלפים

חלק קבוע

שטח לפרגמנטים

מתחלפים

Fragment #1

Fragment #2

Fragment #3

6 of 22

בגדול שימוש בפרגמנטים

הוא "דרך מקבילה"

לשימוש במספר אקטיביטי.

7 of 22

"מעגל חיים" של פרגמנט

8 of 22

onAttach(Activity)

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

onCreate

הוא משמש לאתחול הפרגמנט.

onCreateView(LayoutInflater, ViewGroup, Bundle)

יוצר ומחזיר היררכיית תצוגה.

onActivityCreated

זה נקרא לאחר השלמת השיטה onCreate()

9 of 22

onViewStateRestored

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

onStart()

הופך את השבר לגלוי.

onResume()

הופך את הפרגמנט לאינטראקטיבי.

onPause()

נקרא כאשר הפרגמנט אינו אינטראקטיבי יותר.

10 of 22

onStop()

נקרא כאשר השבר אינו נראה עוד.

onDestroyView()

מאפשר למקטע לנקות משאבים.

onDestroy()

מאפשר למקטע לבצע ניקוי סופי של מצב המקטע.

onDetach()

זה נקרא רגע לפני שהפרגמנט אינו משויך עוד לפעילותו.דע

11 of 22

לפרכמנט אין Context משלו,

לכן יש צורך להשתמש ב-context

של אקטיביטי בה פרגמנט מופיע

12 of 22

getContext()

שימושי לקבלת ההקשר, אך עשוי להיות null

getActivity()

שימושי לקבלת הפעילות, אך עשוי להיות null

requireContext()

דרך בטוחה לקבל קשר ל-context,

יוצר חריגה אם הפרגמנט אינו מצורף.

requireActivity()

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

13 of 22

איך יוצרים פרגמנט?

  1. יוצרים באקטיביטי מקום להצגת בו פרגמנטים ("חלון")
  2. יוצרים פרגמנט דרך תפריט שך Android studio
  3. מעצבים (xml) פרגמנט
  4. רושמים פקודות ופעולות הדרושים בשימוש בפרגמנט
  5. אם מדובר בפרגמנטים מתחלפים – רושמים פקודות באקטיביטי

14 of 22

FragmentManager

מחלקה באנדרואיד שמנהלת פרגמנטים באפליקציה.

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

FragmentManager fragmentManager = getSupportFragmentManager();

15 of 22

FragmentTransaction

מנהל פעולות על פרגמנטים

כגון הוספה, מחיקה והחלפה.

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

        • transaction.replace(R.id.fragment_container, new MyFragment());
        • transaction.add(R.id.fragment_container, new MyFragment());
        • transaction.remove(fragment);
        • transaction.hide(fragment);
        • transaction.show(fragment);
        • transaction.commit();
        • transaction.addToBackStack(null);

16 of 22

פעולה (שלמה) להצגת פרגמנט

17 of 22

איך מעבירים נתונים...

  • ...בין פרגמנט לאקטיביטי
  • ...בין אקטיביטי לפרגמנט
  • …בין פרגמנט לפרגמנט

18 of 22

אפשר להעביר נתונים בעזרת

Bundle

זהו "מיכל נתונים" המשמש להעברת נתונים בין רכיבים (למשל בין פרגמנטים).

חבילה מעביר נתונים בתוך אפליקציה,

כגון בעת ​​העברת נתונים מקטע אחד למשנהו

או שמירה על מצב פעילות (למשל כאשר המסך מסובב).

19 of 22

אפשר להעביר נתונים בעזרת

Bundle

20 of 22

אפשר להעביר נתונים בעזרת

UI

21 of 22

אפשר להעביר נתונים בעזרת

ViewModel(LiveData)

או בעזרת

SharedPreferences

22 of 22

אפשר להעביר נתונים בעזרת

SharedPreferences