برخی از محتواها به بهترین وجه در تمام صفحه بدون هیچ نشانگری در نوار وضعیت یا نوار پیمایش تجربه می شوند. برخی از نمونه ها ویدئوها، بازی ها، گالری تصاویر، کتاب ها و اسلایدهای ارائه هستند. به این حالت غوطه ور گفته می شود. این صفحه نشان میدهد که چگونه میتوانید کاربران را عمیقتر با محتوای تمام صفحه درگیر کنید.
![](https://developer.android.com/static/design/media/fullscreen_landing.png?authuser=2&hl=fa)
حالت همه جانبه به کاربران کمک می کند از خروج تصادفی در طول بازی اجتناب کنند و تجربه ای همه جانبه را برای لذت بردن از تصاویر، ویدیوها و کتاب ها ارائه می دهد. با این حال، به این نکته توجه داشته باشید که هر چند وقت یکبار کاربران برای بررسی اعلانها، انجام جستجوهای بداهه یا انجام اقدامات دیگر به برنامهها وارد و خارج میشوند. از آنجایی که حالت همه جانبه باعث می شود کاربران دسترسی آسان به ناوبری سیستم را از دست بدهند، از حالت همه جانبه فقط زمانی استفاده کنید که مزیت تجربه کاربر فراتر از استفاده از فضای اضافی صفحه نمایش باشد.
از 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
استفاده کنید تا به طور موقت نوارهای سیستم مخفی را با ژستهای حرکتی سیستم آشکار کنید، مانند کشیدن انگشت از لبه صفحه که نوار از آنجا پنهان است. این نوارهای سیستم گذرا روی محتوای برنامه شما قرار میگیرند، ممکن است تا حدودی شفافیت داشته باشند و پس از مدت کوتاهی بهطور خودکار پنهان میشوند.