הסתרת סרגל הניווט
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
בשיעור הזה נסביר איך להסתיר את סרגל הניווט, שהיה חדש ב-
Android 4.0 (רמת API 14).
למרות שהשיעור מתמקד בהסתרה של
את סרגל הניווט, צריך לעצב את האפליקציה כך שתסתיר את שורת הסטטוס
בו-זמנית, כפי שמתואר בקטע הסתרה של שורת הסטטוס.
הסתרת סרגלי הניווט והסטטוס (תוך שמירה על גישה מהירה אליהם)
מאפשר לתוכן להשתמש בכל שטח התצוגה, ובכך לספק חוויה סוחפת יותר
חוויית המשתמש.
איור 1. סרגל ניווט.
הסתרת סרגל הניווט
אפשר להסתיר את סרגל הניווט באמצעות
סימון SYSTEM_UI_FLAG_HIDE_NAVIGATION
. קטע הקוד הזה מסתיר את שני המקורות
את סרגל הניווט ושורת הסטטוס:
Kotlin
window.decorView.apply {
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN
}
Java
View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
שימו לב:
- בגישה זו, נגיעה בכל מקום במסך גורמת לסרגל הניווט
כדי להופיע שוב ולהישאר גלויים. האינטראקציה של המשתמש גורמת לסימון
צריך להיות מבוטל.
- לאחר ניקוי הדגלים, האפליקציה תצטרך לאפס אותם אם
אני רוצה להסתיר שוב את העמודות. במאמר תגובה לשינויים בחשיפה של ממשק המשתמש אפשר לקרוא
דיון לגבי האופן שבו ניתן להאזין לשינויים בחשיפה של ממשק המשתמש, כדי שהאפליקציה תוכל
מגיבים בהתאם.
- יש הבדל בין הדגלים שבהם מגדירים את התכונות הניסיוניות בממשק המשתמש. אם הסתרת את סרגלי המערכת בקטע של הפעילות
בשיטת
onCreate()
והמשתמש לוחץ על 'דף הבית', סרגלי המערכת
להופיע שוב. כשהמשתמש פותח מחדש את הפעילות, onCreate()
לא תתבצע קריאה, כך שעמודות המערכת יישארו גלויות. אם רוצים לבצע שינויים בממשק המשתמש של המערכת
להמשיך כשהמשתמש מנווט לפעילות שלך ויוצא ממנה, להגדיר סימונים בממשק המשתמש
onResume()
או onWindowFocusChanged()
.
- רק השיטה
setSystemUiVisibility()
תהיה השפעה אם התצוגה שממנה התקשרת אליה גלויה.
- יציאה מהתצוגה תגרום לסימונים
מוגדר עם
setSystemUiVisibility()
.
הצגת התוכן מאחורי סרגל הניווט
ב-Android 4.1 ואילך, ניתן להגדיר את תוכן האפליקציה כך שיופיע מאחורי הקלעים
בסרגל הניווט, כך שגודל התוכן לא ישתנה כשסרגל הניווט מוסתר
תוכניות. כדי לעשות את זה משתמשים
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
יכול להיות שתצטרכו להשתמש גם
SYSTEM_UI_FLAG_LAYOUT_STABLE
כדי לעזור לאפליקציה לשמור על
בפריסה יציבה.
כשאתם משתמשים בגישה הזו, באחריותכם לוודא כי חלקים קריטיים
מממשק המשתמש של האפליקציה לא מכוסים בסרגלי המערכת. לקבלת מידע נוסף
בנושא הזה, ראו
הסתרת השיעור בסרגל הסטטוס.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[],null,["# Hide the navigation bar\n\nThis lesson describes how to hide the navigation bar, which was introduced in\nAndroid 4.0 (API level 14).\n\nEven though this lesson focuses on hiding the\nnavigation bar, you should design your app to hide the status bar\nat the same time, as described in [Hiding the Status Bar](/training/system-ui/status).\nHiding the navigation and status bars (while still keeping them readily accessible)\nlets the content use the entire display space, thereby providing a more immersive\nuser experience.\n\n**Figure 1.** Navigation bar.\n\nHide the Navigation Bar\n-----------------------\n\nYou can hide the navigation bar using the\n[SYSTEM_UI_FLAG_HIDE_NAVIGATION](/reference/android/view/View#SYSTEM_UI_FLAG_HIDE_NAVIGATION) flag. This snippet hides both\nthe navigation bar and the status bar: \n\n### Kotlin\n\n```kotlin\nwindow.decorView.apply {\n // Hide both the navigation bar and the status bar.\n // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as\n // a general rule, you should design your app to hide the status bar whenever you\n // hide the navigation bar.\n systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN\n}\n```\n\n### Java\n\n```java\nView decorView = getWindow().getDecorView();\n// Hide both the navigation bar and the status bar.\n// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as\n// a general rule, you should design your app to hide the status bar whenever you\n// hide the navigation bar.\nint uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION\n | View.SYSTEM_UI_FLAG_FULLSCREEN;\ndecorView.setSystemUiVisibility(uiOptions);\n```\n\nNote the following:\n\n- With this approach, touching anywhere on the screen causes the navigation bar (and status bar) to reappear and remain visible. The user interaction causes the flags to be be cleared.\n- Once the flags have been cleared, your app needs to reset them if you want to hide the bars again. See [Responding to UI Visibility Changes](/training/system-ui/visibility) for a discussion of how to listen for UI visibility changes so that your app can respond accordingly.\n- Where you set the UI flags makes a difference. If you hide the system bars in your activity's [onCreate()](/reference/android/app/Activity#onCreate(android.os.Bundle)) method and the user presses Home, the system bars will reappear. When the user reopens the activity, [onCreate()](/reference/android/app/Activity#onCreate(android.os.Bundle)) won't get called, so the system bars will remain visible. If you want system UI changes to persist as the user navigates in and out of your activity, set UI flags in [onResume()](/reference/android/app/Activity#onResume()) or [onWindowFocusChanged()](/reference/android/view/Window.Callback#onWindowFocusChanged(boolean)).\n- The method [setSystemUiVisibility()](/reference/android/view/View#setSystemUiVisibility(int)) only has an effect if the view you call it from is visible.\n- Navigating away from the view causes flags set with [setSystemUiVisibility()](/reference/android/view/View#setSystemUiVisibility(int)) to be cleared.\n\nMake Content Appear Behind the Navigation Bar\n---------------------------------------------\n\nOn Android 4.1 and higher, you can set your application's content to appear behind\nthe navigation bar, so that the content doesn't resize as the navigation bar hides and\nshows. To do this, use\n[SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION](/reference/android/view/View#SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION).\nYou may also need to use\n[SYSTEM_UI_FLAG_LAYOUT_STABLE](/reference/android/view/View#SYSTEM_UI_FLAG_LAYOUT_STABLE) to help your app maintain a\nstable layout.\n\nWhen you use this approach, it becomes your responsibility to ensure that critical parts\nof your app's UI don't end up getting covered by system bars. For more\ndiscussion of this topic, see the [Hiding the Status Bar](/training/system-ui/status#behind) lesson."]]