Gerçekçi mod için sistem çubuklarını gizle

Bazı içerikler en iyi, herhangi bir gösterge olmadan tam ekranda veya gezinme çubuğuna dokunun. Örnek olarak şunlar verilebilir: videolar, oyunlar, resimler galeri, kitap ve sunu slaytlarını kullanabilirsiniz. Buna denir yoğun modu kullanın. Bu sayfada, içeriği tam ekranda görüntülemenizi sağlar.

.
Şekil 1. Yoğun içerik modu örneği.

Yoğun içerik modu, kullanıcıların oyun sırasında yanlışlıkla çıkmaktan kaçınmasına ve resim, video ve kitapların keyfini çıkarmak için etkileyici bir deneyim sunar. Ancak kullanıcıların bildirimleri kontrol etmek için uygulamalara girip çıkma sıklığına dikkat edin. veya başka işlemler yapmak için kullanır. Yoğun içerik modu Kullanıcıların sistemde gezinmeye kolay erişimi kaybetmesine neden oluyor. Yalnızca yoğun içerik modunu kullan sunduğu avantaj, fazladan ekran kullanımının ötesine geçip boşluk oluşturur.

WindowInsetsControllerCompat.hide() kullanın sistem çubuklarını gizleyin ve WindowInsetsControllerCompat.show() geri getirmek için kullanılır.

Aşağıdaki snippet'te, bir düğmeyi tıklayarak gizlenecek ve gösterilecek bir düğme yapılandırma görebilirsiniz.

Kotlin

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)
    }
}

Java

@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);
    });
}

İsteğe bağlı olarak, gizlenecek ve belirlenecek sistem çubuklarının türünü belirtebilirsiniz kullanıcıların etkileşim kurduğu etkileşimlerdir.

Hangi sistem çubuklarının gizleneceğini belirtme

Gizlenecek sistem çubuklarının türünü belirtmek için aşağıdaki parametrelerden birini iletin WindowInsetsControllerCompat.hide() numaralı telefona.

Gizli sistem çubuklarının davranışını belirtin

WindowInsetsControllerCompat.setSystemBarsBehavior() kullanın kullanın.