Kullanıcı arayüzü görünürlüğü değişikliklerine yanıt verme

Bu derste, uygulamanızın sistem kullanıcı arayüzü görünürlüğü değişiklikleriyle ilgili bildirim alabilmesi için bir dinleyiciyi nasıl kaydedebileceğiniz açıklanmaktadır. Bu, kullanıcı arayüzünüzün diğer bölümlerini sistem çubuklarının gizlenmesi/gösterilmesiyle senkronize etmek istediğinizde yararlı olur.

Bir Dinleyici Kaydetme

Sistem kullanıcı arayüzü görünürlük değişiklikleri hakkında bildirim almak için görünümünüze bir View.OnSystemUiVisibilityChangeListener kaydedin. Bu, genellikle gezinme görünürlüğünü kontrol etmek için kullandığınız görünümdür.

Örneğin, bu kodu etkinliğinizin onCreate() yöntemine ekleyebilirsiniz:

Kotlin

window.decorView.setOnSystemUiVisibilityChangeListener { visibility ->
    // Note that system bars will only be "visible" if none of the
    // LOW_PROFILE, HIDE_NAVIGATION, or FULLSCREEN flags are set.
    if (visibility and View.SYSTEM_UI_FLAG_FULLSCREEN == 0) {
        // TODO: The system bars are visible. Make any desired
        // adjustments to your UI, such as showing the action bar or
        // other navigational controls.
    } else {
        // TODO: The system bars are NOT visible. Make any desired
        // adjustments to your UI, such as hiding the action bar or
        // other navigational controls.
    }
}

Java

View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener
        (new View.OnSystemUiVisibilityChangeListener() {
    @Override
    public void onSystemUiVisibilityChange(int visibility) {
        // Note that system bars will only be "visible" if none of the
        // LOW_PROFILE, HIDE_NAVIGATION, or FULLSCREEN flags are set.
        if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
            // TODO: The system bars are visible. Make any desired
            // adjustments to your UI, such as showing the action bar or
            // other navigational controls.
        } else {
            // TODO: The system bars are NOT visible. Make any desired
            // adjustments to your UI, such as hiding the action bar or
            // other navigational controls.
        }
    }
});

Kullanıcı arayüzünüzü sistem çubuğu görünürlüğündeki değişikliklerle senkronize tutmak genellikle iyi bir uygulamadır. Örneğin, bu işleyiciyi, durum çubuğunun gizlenip gösterilmesiyle birlikte işlem çubuğunu gizlemek ve göstermek için kullanabilirsiniz.