برخی از محتواها در حالت تمام صفحه و بدون هیچ نشانگری در نوار وضعیت یا نوار ناوبری، بهترین تجربه را ارائه میدهند. برخی از نمونهها عبارتند از ویدیوها، بازیها، گالری تصاویر، کتابها و اسلایدهای ارائه. به این حالت، حالت فراگیر (immersive mode) گفته میشود. این صفحه نشان میدهد که چگونه میتوانید کاربران را عمیقتر با محتوا در حالت تمام صفحه درگیر کنید.

حالت فراگیر به کاربران کمک میکند تا از خروجهای تصادفی در طول بازی جلوگیری کنند و یک تجربه فراگیر برای لذت بردن از تصاویر، ویدیوها و کتابها ارائه میدهد. با این حال، به این نکته توجه داشته باشید که کاربران چند بار برای بررسی اعلانها، انجام جستجوهای بداهه یا انجام اقدامات دیگر، به برنامهها وارد و خارج میشوند. از آنجا که حالت فراگیر باعث میشود کاربران دسترسی آسان به ناوبری سیستم را از دست بدهند، فقط زمانی از حالت فراگیر استفاده کنید که مزیت آن برای تجربه کاربر فراتر از استفاده ساده از فضای صفحه نمایش اضافی باشد.
 برای مخفی کردن نوارهای سیستم از WindowInsetsControllerCompat.hide() و برای بازگرداندن آنها از WindowInsetsControllerCompat.show() استفاده کنید.
قطعه کد زیر مثالی از پیکربندی یک دکمه برای پنهان کردن و نمایش دادن نوارهای سیستم را نشان میدهد.
کاتلین
override fun onCreate(savedInstanceState: Bundle?) { ... val windowInsetsController = WindowCompat.getInsetsController(window, window.decorView) // Configure the behavior of the hidden system bars. windowInsetsController.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE // Add a listener to update the behavior of the toggle fullscreen button when // the system bars are hidden or revealed. ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { view, windowInsets -> // You can hide the caption bar even when the other system bars are visible. // To account for this, explicitly check the visibility of navigationBars() // and statusBars() rather than checking the visibility of systemBars(). if (windowInsets.isVisible(WindowInsetsCompat.Type.navigationBars()) || windowInsets.isVisible(WindowInsetsCompat.Type.statusBars())) { binding.toggleFullscreenButton.setOnClickListener { // Hide both the status bar and the navigation bar. windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()) } } else { binding.toggleFullscreenButton.setOnClickListener { // Show both the status bar and the navigation bar. windowInsetsController.show(WindowInsetsCompat.Type.systemBars()) } } ViewCompat.onApplyWindowInsets(view, windowInsets) } }
جاوا
@Override protected void onCreate(Bundle savedInstanceState) { ... WindowInsetsControllerCompat windowInsetsController = WindowCompat.getInsetsController(getWindow(), getWindow().getDecorView()); // Configure the behavior of the hidden system bars. windowInsetsController.setSystemBarsBehavior( WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE ); // Add a listener to update the behavior of the toggle fullscreen button when // the system bars are hidden or revealed. ViewCompat.setOnApplyWindowInsetsListener( getWindow().getDecorView(), (view, windowInsets) -> { // You can hide the caption bar even when the other system bars are visible. // To account for this, explicitly check the visibility of navigationBars() // and statusBars() rather than checking the visibility of systemBars(). if (windowInsets.isVisible(WindowInsetsCompat.Type.navigationBars()) || windowInsets.isVisible(WindowInsetsCompat.Type.statusBars())) { binding.toggleFullscreenButton.setOnClickListener(v -> { // Hide both the status bar and the navigation bar. windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()); }); } else { binding.toggleFullscreenButton.setOnClickListener(v -> { // Show both the status bar and the navigation bar. windowInsetsController.show(WindowInsetsCompat.Type.systemBars()); }); } return ViewCompat.onApplyWindowInsets(view, windowInsets); }); }
به صورت اختیاری، میتوانید نوع نوارهای سیستمی را برای پنهان شدن مشخص کنید و رفتار آنها را هنگام تعامل کاربر با آنها تعیین کنید.
مشخص کنید کدام نوارهای سیستمی پنهان شوند
 برای مشخص کردن نوع نوارهای سیستمی که باید پنهان شوند، یکی از پارامترهای زیر را به WindowInsetsControllerCompat.hide() ارسال کنید.
- برای مخفی کردن هر دو نوار سیستم از - WindowInsetsCompat.Type.systemBars()استفاده کنید.
- برای مخفی کردن فقط نوار وضعیت از - WindowInsetsCompat.Type.statusBars()استفاده کنید.
- برای مخفی کردن فقط نوار ناوبری از - WindowInsetsCompat.Type.navigationBars()استفاده کنید.
مشخص کردن رفتار نوارهای سیستمی پنهان
 از WindowInsetsControllerCompat.setSystemBarsBehavior() برای مشخص کردن نحوه رفتار نوارهای سیستمی پنهان هنگام تعامل کاربر با آنها استفاده کنید.
- از - WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_TOUCHبرای نمایش نوارهای سیستمی پنهان در هرگونه تعامل کاربر در صفحه نمایش مربوطه استفاده کنید.
- از - WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_SWIPEبرای نمایش نوارهای سیستمی پنهان در هر حرکت سیستمی، مانند کشیدن انگشت از لبه صفحه نمایش که نوار از آنجا پنهان شده است، استفاده کنید.
- از - WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPEبرای نمایش موقت نوارهای سیستمی پنهان با حرکات سیستمی، مانند کشیدن انگشت از لبه صفحه نمایش که نوار از آنجا پنهان است، استفاده کنید. این نوارهای سیستمی گذرا، محتوای برنامه شما را میپوشانند، ممکن است تا حدی شفافیت داشته باشند و پس از یک زمانبندی کوتاه، به طور خودکار پنهان میشوند.
