PracticU

Prevent Keyboard Auto Display

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › Prevent Keyboard Auto Display
מילון מושגים:
Activity - ב-Android, רכיב שמייצג מסך יחיד של האפליקציה שאיתו המשתמש מתקשר.
תמונה - קובץ גרפי המוצג על המסך. בהקשר של וירטואליזציה או Docker, תבנית מוכנה שממנה יוצרים מכונה או קונטיינר.
אמולטור - תוכנה שמחקה מכשיר או סביבה אחרת, למשל כדי להריץ ולבדוק אפליקציית מובייל על המחשב.
תגית - סימון בקוד, למשל ב-HTML, שתוחם רכיב ומגדיר את תפקידו או תכונותיו. גם תווית לסימון וקיטלוג פריטים.
Android - מערכת הפעלה מבוססת Linux לטלפונים ולמכשירים ניידים, שפותחה על ידי גוגל.

Prevent Keyboard Auto Display
כשאקטיביטי עם EditText נפתחת, ה-EditText מקבל פוקוס מיד ולפעמים המקלדת קופצת ומסתירה את מה שמאחוריה. השיעור מראה איך למנוע זאת.
איך רואים את הבעיה ואיך פותרים
1. הדגמה: בנו מסך עם EditText למעלה (גודל 25sp, רמז Enter Your Name) ו-ImageView מתחתיו עם scaleType מסוג fitXY, שמציג תמונה של משחק עם הכיתוב Click to start.
2. ההבדל בין מכשירים: באמולטור המקלדת לא מוצגת בהתחלה, ואילו במכשיר האמיתי היא קופצת מיד עם עליית האפליקציה. זו הגדרה של המכשיר, שלעיתים המשתמש יכול לשלוט בה.
3. הפתרון במניפסט: בתגית של האקטיביטי ב-AndroidManifest מוסיפים את ההגדרה android:windowSoftInputMode="stateHidden".
4. התוצאה: גם במכשיר האמיתי וגם באמולטור לא מוצגת מקלדת בהתחלה, והמשתמש רואה את מה שמאחוריה. המקלדת עולה רק כשהוא לוחץ על ה-EditText.
כעת אפשר למנוע הצגה אוטומטית של המקלדת בעליית אקטיביטי, בלי תלות בהגדרות המכשיר.

פרקי ההרצאה: Prevent Keyboard Auto Display

  1. 00:00

    מקלדת שמסתירה את המסך

  2. 00:42

    מסך דוגמה עם EditText ותמונה

  3. 01:20

    הרצה באמולטור ובמכשיר אמיתי

  4. 01:58

    המקלדת נפתחת מיד במכשיר

  5. 02:37

    הגדרת windowSoftInputMode במניפסט

תמלול ההרצאה: Prevent Keyboard Auto Display

הטקסט המלא של הדקות הראשונות בהרצאה «Prevent Keyboard Auto Display» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:27

    אז בואו נניח שיש לנו כאן אדי טקסט בכדי לקבל מיידית פוקוס בואו ניקח Edit Text עם Match Parent ו-Wrap Content.

  3. 00:37

    בואו נגדיר איזשהו טקסט סייז של 25 SP. בואו נגדיר איזשהו הינט, נניח Enter Your Name, והנה יש לנו כאן איזשהו Edit Text שמוצג לנו למעלה.

  4. 00:55

    בואו נניח שפה למטה יש לנו Image View, ניקח Match Parent, ו-height ובואו נגדיר scale type fit xy שהתמונה תתפוס לנו בדיוק את הממדים שלה ובואו ניקח src מדורבול יש לי תמונה שנקראת game שמציגנו כאילו אנחנו באיזשהו משחק במקרה הזה זה pacman ולמטה אנחנו רואים click to start והclick

  5. 01:26

    to start זה בעצם חלק מהתמונה עכשיו בואו פשוט נריץ את האפליקציה ואנחנו אנחנו הולכים לבחון את האפליקציה גם על אמולטור וגם על מכשיר אמיתי.

  6. 01:39

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

  7. 02:03

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

  8. 02:30

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

  9. 02:48

    איך מבצעים את זה? זה מתבצע ברמת המניפסט. ברמת המניפסט אנחנו ניגשים לתגית של האקטיביטי וכאן אנחנו מוסיפים את ההגדרה הבאה window soft input mode = state hidden בואו נריץ

לקורס המלא: קורס פיתוח אפליקציות לאנדרואיד

ההרצאה הקודמת: The Request Code

ההרצאה הבאה: Get Activity Orientation

הרצאות קשורות מקורסים אחרים

  • UITextFieldDismissKeyboard - Dismissing the keyboard

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון