این درس نحوه پنهان کردن نوار ناوبری را که در اندروید 4.0 (سطح API 14) معرفی شده است، توضیح می دهد.
حتی اگر این درس بر پنهان کردن نوار پیمایش تمرکز دارد، باید برنامه خود را طوری طراحی کنید که نوار وضعیت را همزمان پنهان کند، همانطور که در پنهان کردن نوار وضعیت توضیح داده شده است. پنهان کردن نوارهای پیمایش و وضعیت (در حالی که همچنان آنها را به راحتی در دسترس نگه میدارد) به محتوا اجازه میدهد از کل فضای نمایش استفاده کند و در نتیجه تجربه کاربر فراگیرتری را ارائه دهد.
نوار ناوبری را مخفی کنید
می توانید نوار پیمایش را با استفاده از پرچم SYSTEM_UI_FLAG_HIDE_NAVIGATION
پنهان کنید. این قطعه هم نوار پیمایش و هم نوار وضعیت را پنهان می کند:
کاتلین
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 }
جاوا
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);
به موارد زیر توجه کنید:
- با این رویکرد، لمس هر نقطه از صفحه باعث می شود نوار ناوبری (و نوار وضعیت) دوباره ظاهر شود و قابل مشاهده باشد. تعامل کاربر باعث پاک شدن پرچم ها می شود.
- هنگامی که پرچم ها پاک شدند، اگر می خواهید دوباره نوارها را پنهان کنید، برنامه شما باید آنها را بازنشانی کند. برای بحث در مورد نحوه گوش دادن به تغییرات نمایان بودن UI به طوری که برنامه شما بتواند مطابق با آن پاسخ دهد، به پاسخ به تغییرات نمایان بودن رابط کاربری مراجعه کنید.
- جایی که پرچمهای رابط کاربری را تنظیم میکنید تفاوت ایجاد میکند. اگر نوارهای سیستم را در متد
onCreate()
فعالیت خود پنهان کنید و کاربر Home را فشار دهد، نوارهای سیستم دوباره ظاهر می شوند. هنگامی که کاربر فعالیت را دوباره باز می کند،onCreate()
فراخوانی نمی شود، بنابراین نوارهای سیستم قابل مشاهده خواهند بود. اگر می خواهید تغییرات رابط کاربری سیستم در حین حرکت کاربر به داخل و خارج از فعالیت شما ادامه پیدا کند، پرچم های رابط کاربری را درonResume()
یاonWindowFocusChanged()
تنظیم کنید. - متد
setSystemUiVisibility()
فقط در صورتی اثر دارد که نمایی که از آن فراخوانی می کنید قابل مشاهده باشد. - دور شدن از view باعث می شود پرچم های تنظیم شده با
setSystemUiVisibility()
پاک شوند.
محتوا را در پشت نوار پیمایش ظاهر کنید
در اندروید 4.1 و بالاتر، میتوانید محتوای برنامهتان را طوری تنظیم کنید که در پشت نوار پیمایش ظاهر شود تا با پنهان شدن و نمایش نوار پیمایش، اندازه محتوا تغییر نکند. برای انجام این کار، از SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
استفاده کنید. همچنین ممکن است لازم باشد از SYSTEM_UI_FLAG_LAYOUT_STABLE
برای کمک به برنامه خود برای حفظ یک طرح بندی پایدار استفاده کنید.
وقتی از این رویکرد استفاده میکنید، این وظیفه شماست که مطمئن شوید بخشهای مهم رابط کاربری برنامهتان توسط نوارهای سیستم پوشش داده نمیشوند. برای بحث بیشتر در مورد این موضوع، به درس پنهان کردن نوار وضعیت مراجعه کنید.