
activity_main יש TextView עם match_parent לרוחב ולגובה, גודל טקסט 20SP, ובתוכו טקסט ארוך מתוך ה-strings בשם goldfish. הוא עטוף ב-ScrollView כדי שאפשר יהיה לגלול.activity_main. מוסיפים את ה-qualifier בשם Orientation ובוחרים Landscape. נוצרת תיקייה בשם layout-land, והקובץ שבה נכנס לתוקף במקום המקורי כשהמכשיר ב-Landscape.0dp, גובה match_parent ו-layout_weight של 1. מוסיפים גם scrollbars אנכי, ושווה לעשות זאת גם ב-layout הרגיל.0dp, גובה match_parent, layout_weight של 1 ו-src מתוך drawable. כל רכיב תופס 50% מהרוחב.הטקסט המלא של הדקות הראשונות בהרצאה «Orientation Based Layout» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
יכול להיות שאנחנו רוצים באפליקציה שאנחנו בונים להציג למשתמש ללאוטים שונים כתלות באוריינטיישם של המכשיר. אם היוזר רואה כרגע פורטרייט אנחנו רוצים להציג לו ללאוט א', אבל אם הוא עובר ללנסקייפ אנחנו רוצים לשנות איזה משהו או בכלל להציג לו ללאוט ב'.
עשינו את זה בעבר אבל חשוב שנראה עוד פעם את כל הנוהל כי אנחנו הולכים להשתמש בזה בסרטונים הקרובים. אז קודם כל יש לנו פה ללאוט ראשוני, Main Activity זה ה-Activity Main של ה-Layout שלנו ואנחנו רוצים להציג לו איזשהו מידע מסוים.
בואו ניקח כאן איזשהו Text View ופשוט נציג לו טקסט רגיל. ניקח Match Parent, ניקח Match Parent גם ל-Height, נגדיר שה-Text Size שלנו הוא 20 SP וניתן לו טקסט רב שהכנתי מבעוד מועד והוא נמצא בתוך ה-Stream.
והוא נקרא גולדפיש. הטקסט הזה מציג לנו כל מיני נתונים בנוגע לדת זהב. בגלל שהטקסט הזה הוא טקסט רב, בואו נעתיק אותו מ-Scroll View.
יש לנו פה match parent, match parent, ובתוך ה-Scroll View אנחנו רוצים להציג את הטקסט, וכך היוזר יכול to scroll down ולראות את כל הטקסט.
עכשיו, בוא נניח שזה מה שאנחנו רוצים לראות בפורטרייט אבל ברגע שהיוזר הופך ללנסקייפ אנחנו רוצים להוסיף לו תמונה כלומר אנחנו רוצים קודם כל שהטקסט הזה לא יהיה בצורה כזאת אלא יהיה ממש בצד אם המכשיר שוכב אז אנחנו רוצים שהטקסט יהיה בצד שמאל ומימין לו אנחנו רוצים תמונה של דג זהב מה
שאנחנו צריכים לעשות זה לשכפל את הלאוט הזה ולהוסיף תמונה או להגדיר כל מיני הגדרות נוספות יש שתי שיטות לעשות את זה בואו נראה את שיטה ראשונה פשוט מקש ימני על תיקיית הלאי-אאוט – New – Layout Resource File ואז להגדיר את ההגדרות הדרושות עבור הלאי-אאוט
הנוסף. השם של הלאי-אאוט חייב להיות אותו השם בדיוק של הלאי-אאוט הקודם שזה Activity Main בואו נרשום כאן Activity_Main לאחר מכן נשאיר את הרוט אלמנט, נשאיר את ה-Resource Set, דירקטורי לאאוט ואנחנו רוצים ב-Available Qualifier להגדיר אוריינטיישן ואז להגדיר שאנחנו רוצים במקום פורטרייט לאנסקייפ ואז אנחנו רואים
שהדירקטורי name הופכת להיות לאאוט land במקום לאאוט ואומר שאם אנחנו נמצאים ב-Layout Landscape אוטומטית הקובץ הזה שאנחנו הולכים לבנות עכשיו נכנס לתוקף במקום הקובץ הקודם.
אם אנחנו עושים אוקיי, אז אנחנו רואים שיש לנו עכשיו שני קבצי לאאוט. אנדרואיד סטודיו בחלונית של האנדרואיד מסדרת לנו אותה ממש מתחת לתיקיית אנדרואיד מיין, אבל אם אנחנו ניגש ונראה את סייר הקבצים עצמו, בואו נעשה show in explorer, אנחנו נוכל לראות שיש לנו בעצם שתי תיקיות, תיקיה אחת של לאאוט,
בתוכה הלייאוט הרגיל שלנו ותיקייה אחרת שנקראת לייאוט לנד ובתוכה הלייאוט שאנחנו בונים כרגע. אז הדיפולט זה בעצם הלייאוט הרגיל והוא יהיה עבור פורטרייט ואם היוזר מבצע לנדסקייפ בטלפון שלו אז אוטומטית הלייאוט הזה ייכנס לטוקר. כאן אנחנו יכולים פשוט
לכתוב ובעצם פה לכתוב בדיוק את התצוגה הרגילה שאנחנו רוצים עבור לנדסקייפ. אבל אני לא רוצה להראות את זה, אני רוצה להראות שיטה אחרת, אז בואו ניגש ונמחק את הקובץ הזה, delete, אוקיי, ניגש בחזרה ואפילו נגיע ל-showing explorer
ונמחק לגמרי את התיקייה layout-landscape שכרגע כמובן אין בכלום כי מחקתי את הקובץ ממנה, ויש לנו כרגע שוב פעם תמונה דיפולטית של רק layout אחד.
אז מה היא השיטה השנייה והקצת יותר נוחה לביצוע של layout נוסף, עבור landscape אז בעצם מה שאנחנו צריכים לעשות זה להציג את הדיזיינר ולהגיש את ללחצן הזה ובלחצן הזה אנחנו רוצים לבחור ב-create landscape version למעשה יש לנו את זה גם כאן אפילו לא היינו צריכים לעבור לדיזיינר בחלונית הדיזיין create landscape version
והיתרון של השיטה הזאת ואוטומטית לא רק נוצרת לנו תיקייה ונוצר בתוכה קובץ Landscape אנחנו יכולים לראות את זה ממש אם אנחנו נציג את זה באקספלורר.
הנה אנחנו רואים את ה-Layout הרגיל והנה אנחנו רואים את ה-Layout של ה-Landscape אוטומטית כל הסיפור הזה נוצר לנו אלא כל התוכן של ה-Layout שוכפל ואנחנו ממש מקבלים את אותו התוכן כמובן המערכת לא יודעת מה השינויים שאנחנו רוצים לעשות ואת זה אנחנו צריכים עכשיו לשנות.
אז מה שאנחנו רוצים זה קודם כל ב-Landscape Layout, שימו לב שאנחנו גם רואים את זה כאן בצורת Landscape, אנחנו רוצים להוריד את התצוגה הוורטיקלית ולהציג את ה-Layout הזה ב-Default שלו שזה הוריזונטל.
לאחר מכן אנחנו רוצים שה-Scroll View שעוטף לנו את ה-Text View, אנחנו רוצים שה-Weed שלו יהיה 0DP, כלומר כבר אנחנו רואים שיש פה כל מיני שינויים שאנחנו מבצעים.
אנחנו רוצים שה-height שלו עדיין יהיה match parent אבל שיהיה לו weight של 1 כי אנחנו רוצים גם לתמונה לתת weight 1 ושכל